-
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
numpy version constraint not working in combination with pyworld #9239
Comments
pyworld doesn't restrict numpy in the build requirements, and your I'd have expected numpy 1.20 to have a requires-python >=3.7, and/or pyworld to have a setup_requires that restricts numpy to a compatible version on Python 3.6 (using environment markers). I'm pretty sure the only way to control this from pip's end is to use |
But numpy 1.20.0rc1 does specify a minimum python version. https://github.com/numpy/numpy/blob/v1.20.0rc1/setup.py#L472 Is it possible that this line prevents the evaluation of that minimum version? https://github.com/numpy/numpy/blob/v1.20.0rc1/setup.py#L29-L30 |
Hmm, that's definitely odd, then. Maybe pyworld isn't using PEP 517 (so it's doing a "legacy" install) in which case setuptools will be processing setup_requires using easy_install - which doesn't respect python-requires. Yes, I just checked, pyworld doesn't have a |
I'm seeing the same problem with packages like GPy and matplotlib (neither of which uses pyproject.toml).
|
The runtime check (line 29-30) happens when So there’s nothing pip can do here. The ideal solution would be for pyworld to opt into PEP 517 ( |
This works around a problem in handling dependencies when building Python modules. pypa/pip#9239 Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
This works around a problem in handling dependencies when building Python modules. pypa/pip#9239 Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Why does easy_install use pre-release packages? Installing the correct version of numpy ahead of other dependencies works as a workaround. |
@jvesely that's what adding a pyproject.toml would do -- separate the build step for those projects, so that their build environment is better populated. |
This works around a problem in handling dependencies when building Python modules. pypa/pip#9239 Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
When using this in a new Python3 environment, numpy needs to be installed ahead of GPy. See here: pypa/pip#9239
What did you want to do?
Fresh python 3.6 venv for a quick reproducer. I try to pin
numpy<1.20
to keep python3.6 support intact.requirements.txt
Installed pip from master @ ab7ff0a, but can repro on 18.0 and 20.3.1.
Output
Additional information
numpy >= 1.20 errors out for python < 3.7:
https://github.com/numpy/numpy/blob/31326067c2aea287a261ded44f36a7e9f78cbc79/setup.py#L29-L30
pyworld does not pin any specific numpy version
https://github.com/JeremyCCHsu/Python-Wrapper-for-World-Vocoder/blob/f2732b5490674c50df05acfee91fc294014c174c/setup.py#L51-L57
The text was updated successfully, but these errors were encountered: