pytz由于行为上的这一变化,在使用pip v1.4或更高版本进行安装时会发生此错误:
[预发行版本](http://pip.readthedocs.org/en/1.4.1/logic.html#pre-release-versions)
从v1.4开始,pip默认将仅安装PEP426指定的稳定版本。如果某个版本无法解析为兼容的PEP426版本,则假定该版本为预发行版本。
如果需求说明符包含预发行版本或开发版本(例如
>=0.0.dev0),则pip将允许该需求的预发行版本和开发版本。这不包括!=标志。该
pip install命令还支持一个--pre标志,该标志将允许安装预发行版和开发发行版。
pytz软件包的版本标识符的格式为
2013b。PEP426使用中所描述的版本标识符PEP440,它规定:
公开版本标识符必须符合以下方案:
N[.N]+[{a|b|c|rc}N][.postN][.devN]
因为
pytz类似的版本
2013b与该格式不匹配,所以pip的1.4+版本会将其 所有 版本
pytz视为预发行版本,并且默认情况下不安装它们。
如果仅安装
pytz,则可以使用该
--pre标志来避免这种行为,但是您不想使用该标志来安装整个项目的需求:某些软件包可能具有您不想要的不稳定的预发行版本。在这种情况下,请使用上述行为:如果为程序包指定“预发行”版本号,则pip将搜索程序包的“预发行”版本。所以我已经添加到我的
requirements.txt:
pytz>=2013b
现在,当我升级软件包时,pip现在将正确搜索并安装的最新版本
pytz。
这已经提交作为在pytz
bug跟踪系统问题#1204837,并在PIP
bug跟踪系统问题#974。
Stop Press
:如PyTz错误报告中所述,pytz的版本号现已更改为例如2013.7-因此,一旦升级到此版本,就不再会出现此问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)