繁体   English   中英

制作python pip找出要下载的正确软件包版本

[英]making python pip figure out the correct package version to download

我已经多次遇到这个问题了。 基本上,在工作中我们在Windows上使用旧版本的python(2.5),并且通常当我这样做时,例如pip install zope.interface pip总是下载最新版本的软件包,无论我的python版本是否支持该软件包或不。 所以上面的例子将下载4.0.1虽然PKG-INFO没有列出python 2.5作为支持的版本因此我得到一个安装错误

  File "C:\Users\jamaam\build\zope.interface\setup.py", line 42
except DistutilsPlatformError as e:

我想pip更智能,并安装我的python版本支持的最高版本的软件包(在这个例子中为3.8.0 ),可能警告这个软件包不是最新的,没有我必须搜索interweb在我的环境中手动查找可安装的版本。

反正有没有这样做?

以下是PKG-INFO的一些内容,显然没有列出python 2.5

381 Classifier: Operating System :: OS Independent
382 Classifier: Programming Language :: Python :: 2.6
383 Classifier: Programming Language :: Python :: 2.7
384 Classifier: Programming Language :: Python :: 3
385 Classifier: Programming Language :: Python :: 3.2
386 Classifier: Topic :: Software Development :: Libraries :: Python Modules

没有; 没有元数据可以进行这样的调用,因此没有任何pip (或任何其他工具)可以用来确定哪个版本的软件包适用于您的python版本。

您唯一的选择是在安装时使用版本引脚:

pip install -I zope.interface==3.8.0

注意-I在那里切换; 由于您已经尝试安装最新版本,因此可能需要忽略任何已安装的版本以强制降级。

请注意,此任务不能依赖Trove python版本分类器( Classifier: Programming Language :: Python :: * ); 它们是由开发人员设置的,如果他们记得这样做,但是稍后无法更新以表明与新python版本的兼容性。 它们应该被视为一种帮助优化PyPI和其他包索引的搜索的方法,而不是安装程序使用的元数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM