pytest-dev / pytest-forked

extracted --boxed from pytest-xdist to ensure backward compat
MIT License
62 stars 21 forks source link

Build failure due to setuptools in pyproject.toml #47

Open risoms opened 3 years ago

risoms commented 3 years ago

It looks like https://github.com/pytest-dev/pytest-forked/blob/master/pyproject.toml is causing build failures due to setuptools ~= 41.4 (console output below). This has been seen in other packages as well. A possible solution is to get rid of the file, or at least the setuptools pin.

10:13:52 Collecting  #pytest-forked
10:13:52   Downloading pytest-forked-1.3.0.tar.gz (9.8 kB)
10:13:52   Installing build dependencies: started
10:13:53   Installing build dependencies: finished with status 'error'
10:13:53   ERROR: Command errored out with exit status 1:
10:13:53    command: /usr/local/bin/python /usr/local/lib/python3.7/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-hbrecn75/overlay --no-warn-script-location --no-binary :all: --only-binary :none: -i http://build.locusdev.net:10001/simple --extra-index-url https://pypi.python.org/simple --trusted-host build.locusdev.net -- 'setuptools ~= 41.4' 'setuptools_scm ~= 3.3' 'wheel ~= 0.33.6'
10:13:53        cwd: None
10:13:53   Complete output (20 lines):
10:13:53   Looking in indexes: http://build.locusdev.net:10001/simple, https://pypi.python.org/simple/, https://pypi.python.org/simple
10:13:53   Collecting setuptools~=41.4
10:13:53     Downloading setuptools-41.6.0.zip (852 kB)
10:13:53       ERROR: Command errored out with exit status 1:
10:13:53        command: /usr/local/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-fobv7n3k/setuptools/setup.py'"'"'; __file__='"'"'/tmp/pip-install-fobv7n3k/setuptools/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-fobv7n3k/setuptools/pip-egg-info
10:13:53            cwd: /tmp/pip-install-fobv7n3k/setuptools/
10:13:53       Complete output (9 lines):
10:13:53       Traceback (most recent call last):
10:13:53         File "<string>", line 1, in <module>
10:13:53         File "/tmp/pip-install-fobv7n3k/setuptools/setuptools/__init__.py", line 6, in <module>
10:13:53           import distutils.core
10:13:53         File "/usr/local/lib/python3.7/site-packages/_distutils_hack/__init__.py", line 83, in create_module
10:13:53           return importlib.import_module('setuptools._distutils')
10:13:53         File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module
10:13:53           return _bootstrap._gcd_import(name[level:], package, level)
10:13:53       ModuleNotFoundError: No module named 'setuptools._distutils'
10:13:53       ----------------------------------------
10:13:53   ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
10:13:53   WARNING: You are using pip version 20.0.2; however, version 20.2.2 is available.
10:13:53   You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.
10:13:53   ----------------------------------------
10:13:53 ERROR: Command errored out with exit status 1: /usr/local/bin/python /usr/local/lib/python3.7/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-hbrecn75/overlay --no-warn-script-location --no-binary :all: --only-binary :none: -i http://build.locusdev.net:10001/simple --extra-index-url https://pypi.python.org/simple --trusted-host build.locusdev.net -- 'setuptools ~= 41.4' 'setuptools_scm ~= 3.3' 'wheel ~= 0.33.6' Check the logs for full command output.
10:13:53 WARNING: You are using pip version 20.0.2; however, version 20.2.2 is available.
10:13:53 You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.
webknjaz commented 3 years ago

Refs:

webknjaz commented 3 years ago

I'd like to see what pip/setuptools devs have to say about this before rushing to patch it. Also, it's not really because of setuptools~=41.4. setuptools 48/49/50 try to change the way they patch distutils. But the problem seems to be that when running the build in isolation, extra site-packages get into PYTHONPATH causing the module mixup from two setuptools installations.