Closed ghost closed 2 years ago
Try installing the python3-setuptools package. I don't use Ubuntu, but the get their package splits from Debian and that's what I would recommend there.
Scott K
Hey Scott, thanks for the super quick reply. That sounds like it could be a workaround but I think it would be a workaround not a real fix.
I may not have been super clear but the way I see it there are two bugs here.
A pre-built wheel is not being exported that works with Ubuntu + Python3.6. This forces someone who wants to use this package to install it from source.
Because of 1 we now need to build the package from source. We are unable to install from source though because of https://github.com/pyca/pynacl/commit/44fb453931c611d4822343debe902cca8e1c8afe which contradicts the comment on https://github.com/pyca/pynacl/blob/main/pyproject.toml#L2
I could be wrong about my assessment though, its a Saturday and I've only briefly looked at this
I could work around this by installing the implicit wheel dependency but I don't think that that should be considered a permanent fix
Looks like a few things here. First, Python3.6 on Ubuntu x86_64 is definitely covered by our existing wheels. However, to receive a wheel you'll need to make sure you're up-to-date with your pip
version.
For compiling, wheel
is a declared dependency for our build system, but it's not something that's a runtime dep. We will actually be entirely removing setup_requires shortly (as we've done in pyca/cryptography
). The message there is out of date though, thank you for pointing that out. An up-to-date pip
will also properly detect the wheel dependency (and setuptools minimum version) we declare within the pyproject.toml and successfully install.
Sure enough upgrading to a not-horrendously-old-version of pip allowed me to find the wheel.
@reaperhulk thanks for your help with this, I imagine this is something that you've seen a lot of while working on these widely used packages. I'll close this out and hopefully anyone else who runs into this will stop using pip 9.0.2 ;)
Can confirm, future searchers - in our case pynacl was being built during a pip install a Docker container (and failing of course) instead of a wheel being downloaded. We are using the Airflow docker image + paramiko, and pynacl is pulled in as a requirement.
I couldn't get it to work with the latest pip but specifically 20.2.4:
pip install --upgrade pip==20.2.4
Because Airflow also has a limitation
On November 2020, new version of PIP (20.3) has been released with a new, 2020 resolver. This resolver does not yet work with Apache Airflow and might leads to errors in installation - depends on your choice of extras. In order to install Airflow you need to either downgrade pip to version 20.2.4 pip upgrade --pip==20.2.4 or, in case you use Pip 20.3, you need to add option --use-deprecated legacy-resolver to your pip install command.
I'm using Python3.6 on Ubuntu and am unable to find a wheel that works for me - https://pypi.org/simple/pynacl/
We are now forced to build a wheel when installing:
but that doesn't seem to be a build requirement. The
pyproject.toml
file mentions that thesetup_requirements
list insetup.py
must match thepyproject.toml
file but it does not - https://github.com/pyca/pynacl/blob/main/pyproject.toml#L2What should the fix be?
setup_requirements
list to contain wheel?Short term fixes for me might be to: