setuptools_scm: build failure with setuptools_scm 6.0.1
we are using django-haystack, which is using setuptools_scm as dependency, with today’s release of 6.0.1, we are running into syntax error from utils.py
/tmp/easy_install-ud6TLb/setuptools_scm-6.0.1/src
<pkg_resources.WorkingSet object at 0x7fdf8c2ba4d0>
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-Ia66L1/django-haystack/setup.py", line 69, in <module>
setup_requires=['setuptools_scm'],
File "/usr/local/lib/python2.7/site-packages/setuptools/__init__.py", line 142, in setup
_install_setup_requires(attrs)
File "/usr/local/lib/python2.7/site-packages/setuptools/__init__.py", line 137, in _install_setup_requires
dist.fetch_build_eggs(dist.setup_requires)
File "/usr/local/lib/python2.7/site-packages/setuptools/dist.py", line 586, in fetch_build_eggs
replace_conflicting=True,
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 780, in resolve
replace_conflicting=replace_conflicting
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1063, in best_match
return self.obtain(req, installer)
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1075, in obtain
return installer(requirement)
File "/usr/local/lib/python2.7/site-packages/setuptools/dist.py", line 653, in fetch_build_egg
return cmd.easy_install(req)
File "/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 679, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 705, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 890, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1158, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1144, in run_setup
run_setup(setup_script, args)
File "/usr/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 253, in run_setup
raise
File "/usr/local/lib/python2.7/contextlib.py", line 35, in __exit__
self.gen.throw(type, value, traceback)
File "/usr/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 195, in setup_context
yield
File "/usr/local/lib/python2.7/contextlib.py", line 35, in __exit__
self.gen.throw(type, value, traceback)
File "/usr/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 166, in save_modules
saved_exc.resume()
File "/usr/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 141, in resume
six.reraise(type, exc, self._tb)
File "/usr/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 154, in save_modules
yield saved
File "/usr/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 195, in setup_context
yield
File "/usr/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 250, in run_setup
_execfile(setup_script, ns)
File "/usr/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 45, in _execfile
exec(code, globals, locals)
File "/tmp/easy_install-ud6TLb/setuptools_scm-6.0.1/setup.py", line 52, in <module>
},
File "/tmp/easy_install-ud6TLb/setuptools_scm-6.0.1/setup.py", line 29, in scm_config
]
File "/tmp/easy_install-ud6TLb/setuptools_scm-6.0.1/src/setuptools_scm/__init__.py", line 8, in <module>
File "/tmp/easy_install-ud6TLb/setuptools_scm-6.0.1/src/setuptools_scm/config.py", line 6, in <module>
File "/tmp/easy_install-ud6TLb/setuptools_scm-6.0.1/src/setuptools_scm/utils.py", line 41
print(*k)
^
SyntaxError: invalid syntax
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 8
- Comments: 17 (7 by maintainers)
Commits related to this issue
- Pin setuptools_scm to 5.0.2 As noted in pypa/setuptools_scm#541, the latest version of that tool fails to build in Python 2.7. — committed to FOSSforlife/backports.functools_lru_cache by FOSSforlife 3 years ago
- python-dateutil: disable setuptools-scm for build Fixes https://github.com/openwrt/packages/issues/15988 It seems that the newer setuptools-scm package (6.0.1) has some Python3-only syntax. For the ... — committed to commodo/packages by commodo 3 years ago
- python-dateutil: disable setuptools-scm for build Fixes https://github.com/openwrt/packages/issues/15988 It seems that the newer setuptools-scm package (6.0.1) has some Python3-only syntax. For the ... — committed to openwrt/packages by commodo 3 years ago
Running
pip install setuptools-scm==5.0.2
worked for mepython2 support and support for setuptools that builds eggs was dropped, i’ll add a better error but python2 is not coming back, please pin
You might check that your index server supports PEP 508.
Pip 9.x supports PEP 508. Here’s a demo of it pulling a compatible version from PyPI:
The problem with pinning is that each project declares its own build dependencies and pip installs those in an isolated build environment (if they implement PEP 517), so as an upstream package depending on it, you have little control on how it’s built.
I’m able to build backports.functools_lru_cache from source without problems on Python 2.7 with pip 10:
Or install with pip 9 from wheel:
I am able to replicate the issue with pip 9 and build from source, because pip 9 doesn’t support PEP 508: