pypa / pypa/setuptools

[BUG]

Open
#3,317 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug Needs Triage Waiting User Feedback
Dominant language
Python
Stars
2.9k
Forks
1.4k
Avg merge
1d 1h
Merged PRs (30d)
1

Description

setuptools version

setuptools==61.2.0

Python version

3.9.12 (Anoconda Python)

OS

Ubuntu 22.04

Additional environment information

No response

Description

Installing https://github.com/expyriment/expyriment by running pip install . in the source dir spits an error message:

ImportError: cannot import name 'install_scripts' from 'setuptools._distutils.command' (/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/command/init.py)

setuptools__version__==61.2.0 and distutils.version==3.9.12

(With earlier versions of setuptools (52.0.0) and distutils (3.8.8), under Ubuntu 20.04, there is not such a problem)

Expected behavior

the expyriment wheel should be created.

How to Reproduce

Download and run Anaconda installer (Anaconda3-2022.05-Linux-x86_64.sh)

conda install setuptools

or

pip install setuptools

git clone https://github.com/expyriment/expyriment.git
cd expyriment
pip install .

Output
(base) chrplr@i156478:~/git$ pip install setuptools
Requirement already satisfied: setuptools in /home/chrplr/anaconda3/lib/python3.9/site-packages (61.2.0)
(base) chrplr@i156478:~/git$ git clone https://github.com/expyriment/expyriment.git
Cloning into 'expyriment'...
remote: Enumerating objects: 8761, done.
remote: Counting objects: 100% (459/459), done.
remote: Compressing objects: 100% (172/172), done.
remote: Total 8761 (delta 289), reused 447 (delta 283), pack-reused 8302
Receiving objects: 100% (8761/8761), 8.34 MiB | 2.49 MiB/s, done.
Resolving deltas: 100% (6552/6552), done.
(base) chrplr@i156478:~/git$ cd expyriment/
(base) chrplr@i156478:~/git/expyriment$ pip install .
Processing /home/chrplr/git/expyriment
  DEPRECATION: A future pip version will change local packages to be built in-place without first copying to a temporary directory. We recommend you use --use-feature=in-tree-build to test your packages with this new behavior before it becomes the default.
   pip 21.3 will remove support for this functionality. You can find discussion regarding this at https://github.com/pypa/pip/issues/7555.
Requirement already satisfied: pygame<3,>=1.9 in /home/chrplr/anaconda3/lib/python3.9/site-packages (from expyriment===0.10.0-41-g4df41a1) (2.1.2)
Requirement already satisfied: pyopengl<4,>=3.0 in /home/chrplr/anaconda3/lib/python3.9/site-packages (from expyriment===0.10.0-41-g4df41a1) (3.1.6)
Building wheels for collected packages: expyriment
  Building wheel for expyriment (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /home/chrplr/anaconda3/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-bisduypw/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-bisduypw/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-kv47lpfr
       cwd: /tmp/pip-req-build-bisduypw/
  Complete output (167 lines):
  /home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/dist.py:530: UserWarning: The version specified ('0.10.0-41-g4df41a1') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details.
    warnings.warn(
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib
  creating build/lib/expyriment
  copying expyriment/_internals.py -> build/lib/expyriment
  copying expyriment/__init__.py -> build/lib/expyriment
  copying expyriment/cli.py -> build/lib/expyriment
  copying expyriment/_api_reference_tool.py -> build/lib/expyriment
  creating build/lib/expyriment/control
  copying expyriment/control/_miscellaneous.py -> build/lib/expyriment/control
  copying expyriment/control/__init__.py -> build/lib/expyriment/control
  copying expyriment/control/_experiment_control.py -> build/lib/expyriment/control
  copying expyriment/control/_test_suite.py -> build/lib/expyriment/control
  copying expyriment/control/defaults.py -> build/lib/expyriment/control
  creating build/lib/expyriment/io
  copying expyriment/io/_gamepad.py -> build/lib/expyriment/io
  copying expyriment/io/_touchscreenbuttonbox.py -> build/lib/expyriment/io
  copying expyriment/io/_streamingbuttonbox.py -> build/lib/expyriment/io
  copying expyriment/io/_keyboard.py -> build/lib/expyriment/io
  copying expyriment/io/_input_output.py -> build/lib/expyriment/io
  copying expyriment/io/_markeroutput.py -> build/lib/expyriment/io
  copying expyriment/io/_files.py -> build/lib/expyriment/io
  copying expyriment/io/__init__.py -> build/lib/expyriment/io
  copying expyriment/io/_eventbuttonbox.py -> build/lib/expyriment/io
  copying expyriment/io/_textmenu.py -> build/lib/expyriment/io
  copying expyriment/io/_mouse.py -> build/lib/expyriment/io
  copying expyriment/io/_screen.py -> build/lib/expyriment/io
  copying expyriment/io/_textinput.py -> build/lib/expyriment/io
  copying expyriment/io/_serialport.py -> build/lib/expyriment/io
  copying expyriment/io/_triggerinput.py -> build/lib/expyriment/io
  copying expyriment/io/defaults.py -> build/lib/expyriment/io
  creating build/lib/expyriment/io/extras
  copying expyriment/io/extras/__init__.py -> build/lib/expyriment/io/extras
  creating build/lib/expyriment/io/_parallelport
  copying expyriment/io/_parallelport/__init__.py -> build/lib/expyriment/io/_parallelport
  copying expyriment/io/_parallelport/_inpout32.py -> build/lib/expyriment/io/_parallelport
  copying expyriment/io/_parallelport/_dlportio.py -> build/lib/expyriment/io/_parallelport
  copying expyriment/io/_parallelport/_linux.py -> build/lib/expyriment/io/_parallelport
  creating build/lib/expyriment/misc
  copying expyriment/misc/_miscellaneous.py -> build/lib/expyriment/misc
  copying expyriment/misc/_buffer.py -> build/lib/expyriment/misc
  copying expyriment/misc/__init__.py -> build/lib/expyriment/misc
  copying expyriment/misc/_csv_reader_android.py -> build/lib/expyriment/misc
  copying expyriment/misc/_secure_hash.py -> build/lib/expyriment/misc
  copying expyriment/misc/_clock.py -> build/lib/expyriment/misc
  copying expyriment/misc/constants.py -> build/lib/expyriment/misc
  copying expyriment/misc/_timer.py -> build/lib/expyriment/misc
  copying expyriment/misc/_colour.py -> build/lib/expyriment/misc
  copying expyriment/misc/_get_system_info.py -> build/lib/expyriment/misc
  copying expyriment/misc/defaults.py -> build/lib/expyriment/misc
  creating build/lib/expyriment/misc/extras
  copying expyriment/misc/extras/__init__.py -> build/lib/expyriment/misc/extras
  creating build/lib/expyriment/misc/data_preprocessing
  copying expyriment/misc/data_preprocessing/_data_preprocessing.py -> build/lib/expyriment/misc/data_preprocessing
  copying expyriment/misc/data_preprocessing/__init__.py -> build/lib/expyriment/misc/data_preprocessing
  creating build/lib/expyriment/misc/geometry
  copying expyriment/misc/geometry/_geometry.py -> build/lib/expyriment/misc/geometry
  copying expyriment/misc/geometry/_basic_shapes.py -> build/lib/expyriment/misc/geometry
  copying expyriment/misc/geometry/__init__.py -> build/lib/expyriment/misc/geometry
  creating build/lib/expyriment/misc/statistics
  copying expyriment/misc/statistics/_statistics.py -> build/lib/expyriment/misc/statistics
  copying expyriment/misc/statistics/__init__.py -> build/lib/expyriment/misc/statistics
  creating build/lib/expyriment/stimuli
  copying expyriment/stimuli/_tone.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_fixcross.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_textscreen.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_rectangle.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_ellipse.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/__init__.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_visual.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_circle.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_line.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_obsolete.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_audio.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_shape.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_textline.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_stimulus.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_video.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_blankscreen.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_canvas.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_textbox.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/_picture.py -> build/lib/expyriment/stimuli
  copying expyriment/stimuli/defaults.py -> build/lib/expyriment/stimuli
  creating build/lib/expyriment/stimuli/extras
  copying expyriment/stimuli/extras/__init__.py -> build/lib/expyriment/stimuli/extras
  creating build/lib/expyriment/design
  copying expyriment/design/_structure.py -> build/lib/expyriment/design
  copying expyriment/design/__init__.py -> build/lib/expyriment/design
  copying expyriment/design/defaults.py -> build/lib/expyriment/design
  creating build/lib/expyriment/design/extras
  copying expyriment/design/extras/__init__.py -> build/lib/expyriment/design/extras
  creating build/lib/expyriment/design/randomize
  copying expyriment/design/randomize/__init__.py -> build/lib/expyriment/design/randomize
  copying expyriment/design/randomize/_randomize.py -> build/lib/expyriment/design/randomize
  creating build/lib/expyriment/design/permute
  copying expyriment/design/permute/__init__.py -> build/lib/expyriment/design/permute
  copying expyriment/design/permute/_permute.py -> build/lib/expyriment/design/permute
  copying expyriment/expyriment_logo.png -> build/lib/expyriment
  creating build/lib/expyriment/_fonts
  copying expyriment/_fonts/FreeSerifBold.ttf -> build/lib/expyriment/_fonts
  copying expyriment/_fonts/FreeMonoBold.ttf -> build/lib/expyriment/_fonts
  copying expyriment/_fonts/FreeMonoOblique.ttf -> build/lib/expyriment/_fonts
  copying expyriment/_fonts/FreeSansBoldOblique.ttf -> build/lib/expyriment/_fonts
  copying expyriment/_fonts/FreeSerifItalic.ttf -> build/lib/expyriment/_fonts
  copying expyriment/_fonts/FreeSerif.ttf -> build/lib/expyriment/_fonts
  copying expyriment/_fonts/FreeMonoBoldOblique.ttf -> build/lib/expyriment/_fonts
  copying expyriment/_fonts/FreeSansOblique.ttf -> build/lib/expyriment/_fonts
  copying expyriment/_fonts/FreeSans.ttf -> build/lib/expyriment/_fonts
  copying expyriment/_fonts/FreeSansBold.ttf -> build/lib/expyriment/_fonts
  copying expyriment/_fonts/FreeMono.ttf -> build/lib/expyriment/_fonts
  copying expyriment/_fonts/FreeSerifBoldItalic.ttf -> build/lib/expyriment/_fonts
  /home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
    warnings.warn(
  Traceback (most recent call last):
    File "/tmp/pip-req-build-bisduypw/setup.py", line 366, in <module>
      run()
    File "/tmp/pip-req-build-bisduypw/setup.py", line 315, in run
      setup(name='expyriment',
    File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/__init__.py", line 87, in setup
      return distutils.core.setup(**attrs)
    File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 148, in setup
      return run_commands(dist)
    File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 163, in run_commands
      dist.run_commands()
    File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 967, in run_commands
      self.run_command(cmd)
    File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/dist.py", line 1214, in run_command
      super().run_command(command)
    File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
      cmd_obj.run()
    File "/home/chrplr/anaconda3/lib/python3.9/site-packages/wheel/bdist_wheel.py", line 311, in run
      install_scripts = self.reinitialize_command('install_scripts')
    File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/__init__.py", line 142, in reinitialize_command
      cmd = _Command.reinitialize_command(self, command, reinit_subcommands)
    File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 305, in reinitialize_command
      return self.distribution.reinitialize_command(command,
    File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 939, in reinitialize_command
      command = self.get_command_obj(command_name)
    File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 858, in get_command_obj
      klass = self.get_command_class(command)
    File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/dist.py", line 951, in get_command_class
      self.cmdclass[command] = cmdclass = ep.load()
    File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_vendor/importlib_metadata/__init__.py", line 194, in load
      module = import_module(match.group('module'))
    File "/home/chrplr/anaconda3/lib/python3.9/importlib/__init__.py", line 127, in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
    File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
    File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
    File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
    File "<frozen importlib._bootstrap_external>", line 850, in exec_module
    File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
    File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/command/install_scripts.py", line 2, in <module>
      import distutils.command.install_scripts as orig
  ImportError: cannot import name 'install_scripts' from 'setuptools._distutils.command' (/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/command/__init__.py)
  
  During handling of the above exception, another exception occurred:
  
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-req-build-bisduypw/setup.py", line 369, in <module>
      raise RuntimeError("Building/Installing Expyriment failed!")
  RuntimeError: Building/Installing Expyriment failed!
  ----------------------------------------
  ERROR: Failed building wheel for expyriment
  Running setup.py clean for expyriment
Failed to build expyriment
Installing collected packages: expyriment
    Running setup.py install for expyriment ... error
    ERROR: Command errored out with exit status 1:
     command: /home/chrplr/anaconda3/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-bisduypw/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-bisduypw/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-c2o2zac7/install-record.txt --single-version-externally-managed --compile --install-headers /home/chrplr/anaconda3/include/python3.9/expyriment
         cwd: /tmp/pip-req-build-bisduypw/
    Complete output (172 lines):
    /home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/dist.py:530: UserWarning: The version specified ('0.10.0-41-g4df41a1') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details.
      warnings.warn(
    running install
    /home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
      warnings.warn(
    running build
    running build_py
    creating build
    creating build/lib
    creating build/lib/expyriment
    copying expyriment/_internals.py -> build/lib/expyriment
    copying expyriment/__init__.py -> build/lib/expyriment
    copying expyriment/cli.py -> build/lib/expyriment
    copying expyriment/_api_reference_tool.py -> build/lib/expyriment
    creating build/lib/expyriment/control
    copying expyriment/control/_miscellaneous.py -> build/lib/expyriment/control
    copying expyriment/control/__init__.py -> build/lib/expyriment/control
    copying expyriment/control/_experiment_control.py -> build/lib/expyriment/control
    copying expyriment/control/_test_suite.py -> build/lib/expyriment/control
    copying expyriment/control/defaults.py -> build/lib/expyriment/control
    creating build/lib/expyriment/io
    copying expyriment/io/_gamepad.py -> build/lib/expyriment/io
    copying expyriment/io/_touchscreenbuttonbox.py -> build/lib/expyriment/io
    copying expyriment/io/_streamingbuttonbox.py -> build/lib/expyriment/io
    copying expyriment/io/_keyboard.py -> build/lib/expyriment/io
    copying expyriment/io/_input_output.py -> build/lib/expyriment/io
    copying expyriment/io/_markeroutput.py -> build/lib/expyriment/io
    copying expyriment/io/_files.py -> build/lib/expyriment/io
    copying expyriment/io/__init__.py -> build/lib/expyriment/io
    copying expyriment/io/_eventbuttonbox.py -> build/lib/expyriment/io
    copying expyriment/io/_textmenu.py -> build/lib/expyriment/io
    copying expyriment/io/_mouse.py -> build/lib/expyriment/io
    copying expyriment/io/_screen.py -> build/lib/expyriment/io
    copying expyriment/io/_textinput.py -> build/lib/expyriment/io
    copying expyriment/io/_serialport.py -> build/lib/expyriment/io
    copying expyriment/io/_triggerinput.py -> build/lib/expyriment/io
    copying expyriment/io/defaults.py -> build/lib/expyriment/io
    creating build/lib/expyriment/io/extras
    copying expyriment/io/extras/__init__.py -> build/lib/expyriment/io/extras
    creating build/lib/expyriment/io/_parallelport
    copying expyriment/io/_parallelport/__init__.py -> build/lib/expyriment/io/_parallelport
    copying expyriment/io/_parallelport/_inpout32.py -> build/lib/expyriment/io/_parallelport
    copying expyriment/io/_parallelport/_dlportio.py -> build/lib/expyriment/io/_parallelport
    copying expyriment/io/_parallelport/_linux.py -> build/lib/expyriment/io/_parallelport
    creating build/lib/expyriment/misc
    copying expyriment/misc/_miscellaneous.py -> build/lib/expyriment/misc
    copying expyriment/misc/_buffer.py -> build/lib/expyriment/misc
    copying expyriment/misc/__init__.py -> build/lib/expyriment/misc
    copying expyriment/misc/_csv_reader_android.py -> build/lib/expyriment/misc
    copying expyriment/misc/_secure_hash.py -> build/lib/expyriment/misc
    copying expyriment/misc/_clock.py -> build/lib/expyriment/misc
    copying expyriment/misc/constants.py -> build/lib/expyriment/misc
    copying expyriment/misc/_timer.py -> build/lib/expyriment/misc
    copying expyriment/misc/_colour.py -> build/lib/expyriment/misc
    copying expyriment/misc/_get_system_info.py -> build/lib/expyriment/misc
    copying expyriment/misc/defaults.py -> build/lib/expyriment/misc
    creating build/lib/expyriment/misc/extras
    copying expyriment/misc/extras/__init__.py -> build/lib/expyriment/misc/extras
    creating build/lib/expyriment/misc/data_preprocessing
    copying expyriment/misc/data_preprocessing/_data_preprocessing.py -> build/lib/expyriment/misc/data_preprocessing
    copying expyriment/misc/data_preprocessing/__init__.py -> build/lib/expyriment/misc/data_preprocessing
    creating build/lib/expyriment/misc/geometry
    copying expyriment/misc/geometry/_geometry.py -> build/lib/expyriment/misc/geometry
    copying expyriment/misc/geometry/_basic_shapes.py -> build/lib/expyriment/misc/geometry
    copying expyriment/misc/geometry/__init__.py -> build/lib/expyriment/misc/geometry
    creating build/lib/expyriment/misc/statistics
    copying expyriment/misc/statistics/_statistics.py -> build/lib/expyriment/misc/statistics
    copying expyriment/misc/statistics/__init__.py -> build/lib/expyriment/misc/statistics
    creating build/lib/expyriment/stimuli
    copying expyriment/stimuli/_tone.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_fixcross.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_textscreen.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_rectangle.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_ellipse.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/__init__.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_visual.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_circle.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_line.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_obsolete.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_audio.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_shape.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_textline.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_stimulus.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_video.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_blankscreen.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_canvas.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_textbox.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/_picture.py -> build/lib/expyriment/stimuli
    copying expyriment/stimuli/defaults.py -> build/lib/expyriment/stimuli
    creating build/lib/expyriment/stimuli/extras
    copying expyriment/stimuli/extras/__init__.py -> build/lib/expyriment/stimuli/extras
    creating build/lib/expyriment/design
    copying expyriment/design/_structure.py -> build/lib/expyriment/design
    copying expyriment/design/__init__.py -> build/lib/expyriment/design
    copying expyriment/design/defaults.py -> build/lib/expyriment/design
    creating build/lib/expyriment/design/extras
    copying expyriment/design/extras/__init__.py -> build/lib/expyriment/design/extras
    creating build/lib/expyriment/design/randomize
    copying expyriment/design/randomize/__init__.py -> build/lib/expyriment/design/randomize
    copying expyriment/design/randomize/_randomize.py -> build/lib/expyriment/design/randomize
    creating build/lib/expyriment/design/permute
    copying expyriment/design/permute/__init__.py -> build/lib/expyriment/design/permute
    copying expyriment/design/permute/_permute.py -> build/lib/expyriment/design/permute
    copying expyriment/expyriment_logo.png -> build/lib/expyriment
    creating build/lib/expyriment/_fonts
    copying expyriment/_fonts/FreeSerifBold.ttf -> build/lib/expyriment/_fonts
    copying expyriment/_fonts/FreeMonoBold.ttf -> build/lib/expyriment/_fonts
    copying expyriment/_fonts/FreeMonoOblique.ttf -> build/lib/expyriment/_fonts
    copying expyriment/_fonts/FreeSansBoldOblique.ttf -> build/lib/expyriment/_fonts
    copying expyriment/_fonts/FreeSerifItalic.ttf -> build/lib/expyriment/_fonts
    copying expyriment/_fonts/FreeSerif.ttf -> build/lib/expyriment/_fonts
    copying expyriment/_fonts/FreeMonoBoldOblique.ttf -> build/lib/expyriment/_fonts
    copying expyriment/_fonts/FreeSansOblique.ttf -> build/lib/expyriment/_fonts
    copying expyriment/_fonts/FreeSans.ttf -> build/lib/expyriment/_fonts
    copying expyriment/_fonts/FreeSansBold.ttf -> build/lib/expyriment/_fonts
    copying expyriment/_fonts/FreeMono.ttf -> build/lib/expyriment/_fonts
    copying expyriment/_fonts/FreeSerifBoldItalic.ttf -> build/lib/expyriment/_fonts
    running install_lib
    Traceback (most recent call last):
      File "/tmp/pip-req-build-bisduypw/setup.py", line 366, in <module>
        run()
      File "/tmp/pip-req-build-bisduypw/setup.py", line 315, in run
        setup(name='expyriment',
      File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/__init__.py", line 87, in setup
        return distutils.core.setup(**attrs)
      File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 148, in setup
        return run_commands(dist)
      File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 163, in run_commands
        dist.run_commands()
      File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 967, in run_commands
        self.run_command(cmd)
      File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/dist.py", line 1214, in run_command
        super().run_command(command)
      File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
        cmd_obj.run()
      File "/tmp/pip-req-build-bisduypw/setup.py", line 182, in run
        install.run(self)
      File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/command/install.py", line 68, in run
        return orig.install.run(self)
      File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/command/install.py", line 676, in run
        self.run_command(cmd_name)
      File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/dist.py", line 1214, in run_command
        super().run_command(command)
      File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 984, in run_command
        cmd_obj = self.get_command_obj(command)
      File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 858, in get_command_obj
        klass = self.get_command_class(command)
      File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/dist.py", line 951, in get_command_class
        self.cmdclass[command] = cmdclass = ep.load()
      File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_vendor/importlib_metadata/__init__.py", line 194, in load
        module = import_module(match.group('module'))
      File "/home/chrplr/anaconda3/lib/python3.9/importlib/__init__.py", line 127, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
      File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
      File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 850, in exec_module
      File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
      File "/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/command/install_lib.py", line 4, in <module>
        import distutils.command.install_lib as orig
    ImportError: cannot import name 'install_lib' from 'setuptools._distutils.command' (/home/chrplr/anaconda3/lib/python3.9/site-packages/setuptools/_distutils/command/__init__.py)
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-req-build-bisduypw/setup.py", line 369, in <module>
        raise RuntimeError("Building/Installing Expyriment failed!")
    RuntimeError: Building/Installing Expyriment failed!
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/chrplr/anaconda3/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-bisduypw/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-bisduypw/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-c2o2zac7/install-record.txt --single-version-externally-managed --compile --install-headers /home/chrplr/anaconda3/include/python3.9/expyriment Check the logs for full command output.
(base) chrplr@i156478:~/git/expyriment$ 

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing pip install . from the expyriment source directory with Python 3.9.12 and setuptools 61.2.0, then inspect the referenced setup.py and the failing setuptools build command. Done means the package builds a wheel without the reported install_scripts ImportError in the described environment.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.