找不到满足pytz要求的版本

我有一个问题在virtualenv安装pytz 。

Downloading/unpacking pytz Could not find a version that satisfies the requirement pytz (from versions: 2009r, 2008b, 2009f, 2008c, 2007g, 2011g, 2005m, 2011e, 2007f, 2011k, 2007k, 2006j, 2008h, 2008i, 2011e, 2008a, 2009e, 2006g, 2011j, 2010l, 2005m, 2008i, 2005k, 2008g, 2007c, 2007i, 2009l, 2009r, 2006j, 2011k, 2007d, 2006p, 2009i, 2009u, 2007i, 2009f, 2010g, 2008h, 2009a, 2007g, 2011e, 2006p, 2012b, 2010k, 2005r, 2007f, 2009l, 2009p, 2008c, 2009j, 2008g, 2010g, 2010h, 2011h, 2010k, 2007c, 2007d, 2011d, 2009l, 2011c, 2008a, 2005m, 2007k, 2009n, 2011d, 2010o, 2013b, 2012h, 2010e, 2012c, 2012d, 2012f, 2011n, 2011b, 2011j, 2008c, 2012j, 2007k, 2009f, 2009d, 2010e, 2010b, 2013b, 2011d, 2009p, 2008h, 2005r, 2009i, 2009n, 2009a, 2010k, 2008g, 2006g, 2008b, 2012c, 2009i, 2007g, 2012c, 2010h, 2011n, 2012g, 2007d, 2008a, 2009u, 2012g, 2010o, 2006p, 2010b, 2009u, 2012d, 2011k, 2012f, 2009a, 2007f, 2011h, 2010l, 2009j, 2011g, 2009g, 2009g, 2005r, 2011c, 2012g, 2009g, 2012d, 2009j, 2010o, 2007c, 2010g, 2006g, 2009d, 2010h, 2005k, 2006j, 2010b, 2009n, 2011g, 2011c, 2012b, 2009e, 2009d, 2011j, 2007i, 2012j, 2010l, 2009r, 2012h, 2010e, 2009p, 2008i, 2012f, 2009e, 2012b, 2011h, 2005k, 2008b, 2013b, 2011n, 2012j, 2004b) Cleaning up... No distributions matching the version for pytz 

这似乎是最新版本的点子有问题。

有没有解决办法?

使用pip v1.4或更新版本安装pytz时发生此错误,原因是行为发生了这种变化:

预发行版本

从v1.4开始,pip默认只安装PEP426指定的稳定版本。 如果一个版本不能被parsing为兼容的PEP426版本,那么它被认为是预发行版本。

如果需求说明符包含预发布版本或开发版本(例如>=0.0.dev0 ),则pip将允许该要求的预发布版本和开发版本。 这不包括!=标志。

pip install命令还支持一个--pre标志,可以安装预发行版和开发版。

pytz包的版本标识符的格式类似于2013b 。 PEP426使用PEP440中描述的版本标识符,其指定:

公共版本标识符必须符合以下scheme:

 N[.N]+[{a|b|c|rc}N][.postN][.devN] 

因为像2013b这样的pytz版本不符合这种格式,所以pip版本1.4+将pytz的所有版本视为预发布版本,并且默认情况下不安装它们。

如果你只是安装pytz ,你可以使用--pre标志来避免这种行为,但是你不想用这个标志来安装整个项目的需求:一些软件包可能有不稳定的预发行版本,想。 在这种情况下,使用上述行为:如果您为包指定了“预发布”版本号,则pip将search包的“预发行版”版本。 所以我已经添加到我的requirements.txt

 pytz>=2013b 

当我升级我的软件包时,pip现在可以正确search并安装最新版本的pytz

这已经在pytz bug追踪器中以问题#1204837提交,并且在pip bug追踪器中以#974发布 。

停止按下 :如PyTz错误报告中所述, pytz的版本编号现在已经更改为例如2013.7 – 所以一旦升级到此,问题就不应该再发生。