-
Notifications
You must be signed in to change notification settings - Fork 3k
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
pip 6.0 broke "pip install --pre --upgrade --find-links" #2256
Comments
Can you post the final |
Sure:
Didn't know about |
Does it work if you use |
No, same message. And just for completeness:
|
Hmm. That is very strange. I can't think of what would have changed between then and now. Let me see if I can reproduce locally. |
Oh! I did just notice something. What happens if you change |
No change when changing Edit: I see your suggestion also had no |
A Trying to repro this now. |
Hmm. I get this:
Wonder if this might be something specific to Linux. |
OK clear. I'm signing off for tonight. Thanks for looking into this. |
Looks superficially similar to #1029. |
I was able to reproduce the error, but changing the |
With the new pip release, I think the latest development versions of numpy and scipy are considered older than any released version, whereas with the earlier pip version I think this was not the case. Numpy and scipy do not have valid PEP 440 version names. """
Check the relative ordering of package versions.
"""
from __future__ import print_function, division
import sys
import numpy
import scipy
import pip
import pkg_resources
import setuptools
def main():
print('python version:', sys.version)
print('numpy version:', numpy.__version__)
print('scipy version:', scipy.__version__)
print('pip version:', pip.__version__)
print('setuptools version:', setuptools.__version__)
print()
version_names = ('1.14.2', '1.16.2', '1.17.0.dev-deadbeef')
# I think this is the setuptools order.
print('version order provided by setuptools pkg_resources:')
version_objects = [
pkg_resources.parse_version(x) for x in version_names]
print(sorted(version_objects))
print()
# This should be the pip order.
print('version order provided by the "vendored" setuptools pkg_resources '
'provided by pip:')
try:
version_objects = [
pip._vendor.packaging.version.parse(x) for x in version_names]
except AttributeError:
version_objects = [
pip._vendor.pkg_resources.parse_version(x) for x in version_names]
print(sorted(version_objects))
print()
main() 1.5.6 output:
6.0 output:
|
... and when I change the version names to
I get the order |
Still doesn't fix it for me. It looks like version ordering is part of the problem, but there's something else. @dstufft question: according to
that implies that it does not include local versions. Is that intended, or is the doc wrong? If intended, how do I force install of local versions from a given path? |
Note to self for easier debugging, also use
Note that the error message is incomplete, doesn't mention wheels. |
PEP 440 local versions count as stable versions unless they are included as part of a pre-release version. I wonder, does it work if you upgrade setuptools first? I wonder if the difference is I'm running a new setuptools. |
Well your latest command fails because it's doing
|
@dstufft indeed after upgrading setuptools (version |
I see you already updated the release notes for this backwards compat break, so I guess nothing more to do here. Closing. Thanks for the help in figuring this out! |
Note: That we're considering PEP 440 as a sort of provisional thing, so we're not opposed to making changes if it makes sense in a broader ecosystem sense. But if you're able to get things working with how it is now that's good too. |
Good to know. As far as build/install toolchain issues go, this one is fairly benign. It's a one-character fix plus telling people who run into it to upgrade setuptools - should be no problem. |
It seems that something changed in pip or setuptools that has required another change in the numpy/scipy version names |
TravisCI for numpy started failing after the pip 6.0 release: numpy/numpy#5386
The reason is that
pip install --pre --upgrade --find-links dist numpy
, wheredist
contains a wheel built from current master, starts to install numpy 1.9.1 from PyPi instead of that wheel. I have replicated the issue locally in a virtualenv:I can bisect the issue in pip if needed, but I'm hoping someone can tell me straight away what changed.
The text was updated successfully, but these errors were encountered: