-
-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2.2.0 will install only on Python 3.6, not on 3.7 or 3.8 #42
Comments
I was worried about this. In #37, @vfazio made the case that And in my testing, that's what I see.
Can you describe where and how this package installs on Python 3.6 only? |
Is this a theoretical problem or an actual problem? |
root@ce09ab0be78c:/# mktemp -d
/tmp/tmp.NOhEkFwhkQ
root@ce09ab0be78c:/# cd /tmp/tmp.NOhEkFwhkQ/
root@ce09ab0be78c:/tmp/tmp.NOhEkFwhkQ# python3 -m venv venv
root@ce09ab0be78c:/tmp/tmp.NOhEkFwhkQ# . venv/bin/activate
(venv) root@ce09ab0be78c:/tmp/tmp.NOhEkFwhkQ# python -V
Python 3.7.5
(venv) root@ce09ab0be78c:/tmp/tmp.NOhEkFwhkQ# pip search zipp
zipp (2.2.0) - Backport of pathlib-compatible object wrapper for zip files
(venv) root@ce09ab0be78c:/tmp/tmp.NOhEkFwhkQ# pip install wheel
Collecting wheel
Downloading https://files.pythonhosted.org/packages/8c/23/848298cccf8e40f5bbb59009b32848a4c38f4e7f3364297ab3c3e2e2cd14/wheel-0.34.2-py2.py3-none-any.whl
Installing collected packages: wheel
Successfully installed wheel-0.34.2
(venv) root@ce09ab0be78c:/tmp/tmp.NOhEkFwhkQ# pip install zipp
Collecting zipp
Downloading https://files.pythonhosted.org/packages/46/42/f2dd964b2a6b1921b08d661138148c1bcd3f038462a44019416f2342b618/zipp-2.2.0-py36-none-any.whl
Installing collected packages: zipp
Successfully installed zipp-2.2.0
(venv) root@ce09ab0be78c:/tmp/tmp.NOhEkFwhkQ#
|
On our Python 3.7.6 system running on Ubuntu 16.04 and We manage dozens of libraries, both open source and internally, and we've always had to do something like |
The ubuntu distribution does some weird things with versioning... just an FYI |
We're actually not using the Ubuntu distribution. We're downloading, compiling, and installing from python.org, because the Ubuntu distribution of Python 3.7 is hopelessly broken. |
FYI
|
what version of setuptools is installed? |
My guess is that @nickwilliams-eventbrite is not installing from PyPI, but is installing from some other index or from a file system. @nickwilliams-eventbrite Do you have a way that we might be able to replicate your finding? |
Ah, @jaraco does make a good point. We're installing from an internal Devpi 5.3.0 server, not directly from PyPi. This Devpi server mirrors PyPi, and 2.2.0 is listed on the Devpi server simple index, and we can install 2.2.0 on Python 3.6 from the Devpi server, just not on Python 3.7. |
i think that's a limitation of the server software then? we host using Nexus as a mirror for upstream pypi and we haven't had trouble (yet) |
Perhaps this is a limitation (they may argue a "feature") of Devpi, but there's also a super simple fix that we already know will work (because it already works for us), which is to change the Python tag to |
the challenge i've had with the latter is that python 3.5 will fetch it but can't install it |
In my experience, |
easy way to test this, give me a sec |
If you look at the PyPi simple index for Zipp: https://pypi.org/simple/zipp/ And right-click on a link for 2.1.0 and click "Inspect" from the context menu, you'll see that the link contains the attribute |
It's not a big surprise to me that other tools like DevPi may have had a different interpretation of the Python tags than vfazio. I've reached out in pypa/packaging-problems#322 to get clarity on what is the intention for these tags. Once we have clarity on that, we can address that across the ecosystem. Until then, I think the right thing to do is to go back to
I don't believe the solution is as simple as you say. First, that tag may be correct today for most production environments, but it will be incorrect once Python 3.9 comes out, plus it creates a lot of flux keeping each supported minor version declared in the package names.
If you don't have |
apparently |
Oh that's unfortunate. Thankfully, though, both PyPi and Devpi implement it. Not sure about Nexus, but PyPi and Devpi together cover a vast majority of the ecosystem. |
vfazio gave a demo in this comment where it seems that pip relies on the tags when installing from dists in the file system. |
I double checked my cfg file for those tests. i only changed python-tag:
|
I'm pretty sure I've seen that Nexus supports it also. Tracker indicates support was added in 3.20.0. |
Correct, i just tested this against our instance of 3.20.1 (though we were on an older version prior which was maybe why we were getting errors in our tox tests because incompatible versions were being fetched) |
note also that the django config you pointed to isn't actually released yet AFAICT. Anyway, i see the following:
|
I haven't been able to read all of this discussion, but Python 3.7 should be able to install a
Note that |
I think there's consensus here that Devpi should interpret python-tag values as greater-than-or-equal. @nickwilliams-eventbrite Would you be willing to file that with that project? You may want to consider getting a commercial support contract through Merlinux don't already.
As I illustrated before, this workaround is tedious and error-prone. I'm really reluctant to add it, especially as adding it here implies it should be added across the 140 projects I maintain (and thousands of others I don't). I'm more inclined to roll back to simply |
This reverts commit 0b681b0. Ref jaraco/zipp#42
I think the difference here is that django is supported on all py3. it doesn't have a min version requirement. This is changing on master however, but it has not been cut and released with this change AFACT |
Django 3.0 has been released to PyPi and is restricted to Python >= 3.6 (it is not supported on all Py3) with that |
yea i see it now.. it's just a little obtuse https://github.com/django/django/blob/3.0.3/setup.py#L72 |
For posterity, here's a Dockerfile I was using to replicate the issue. I didn't get around to installing from devpi.
|
Version 2.2.1 addresses this issue using the |
This reverts commit 32a46f0. Ref jaraco/zipp#42
Due to this line in
setup.cfg
:https://github.com/jaraco/zipp/blob/v2.2.0/setup.cfg#L17
The wheel published to PyPi is limited to Python 3.6 and will not install on Python 3.7 or 3.8 (name has
py36
and nothing else in it:zipp-2.2.0-py36-none-any.whl
):https://files.pythonhosted.org/packages/46/42/f2dd964b2a6b1921b08d661138148c1bcd3f038462a44019416f2342b618/zipp-2.2.0-py36-none-any.whl
The
[options]
saypython_version >= 3.6
, but the binary distribution setting is 3.6-only. One of these is not correct, and I suspect it's binary distribution setting. Assuming it is, thepython-tag
needs to be changed to eitherpython-tag=py36.py37.py38
or touniversal=1
.The text was updated successfully, but these errors were encountered: