Hou*_*man 58 python pip virtualenv pytz
我在virtualenv中安装pytz时遇到问题.
下载/解压缩pytz
无法找到满足要求pytz的版本(版本: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)
清理......
没有匹配pytz版本的发行版
这似乎是最新版本的pip的一个问题.
有没有解决方法?
小智 80
pytz由于此行为更改,使用pip v1.4或更高版本进行安装时会发生此错误:
预发布版本
从v1.4开始,pip 默认只安装PEP426指定的稳定版本.如果版本无法解析为兼容的PEP426版本,则假定它是预发布版本.
如果Requirement说明符包含预发布版本或开发版本(例如
>=0.0.dev0),那么pip将允许该发布版本和该发展版本.这不包括!=旗帜.该
pip install命令还支持一个--pre标志,该标志将支持安装预发行版和开发版.
pytz包的版本标识符具有类似的格式2013b.PEP426使用中所描述的版本标识符PEP440,它规定:
公共版本标识符必须符合以下方案:
Run Code Online (Sandbox Code Playgroud)N[.N]+[{a|b|c|rc}N][.postN][.devN]
由于pytz版本2013b与此格式不匹配,因此1.4版本的pip将所有版本pytz视为预发行版本,并且默认情况下不会安装它们.
如果您只是安装pytz,可以使用该--pre标志来避免此行为,但您不希望使用此标志来安装整个项目的要求:某些软件包可能具有您不想要的不稳定的预发布版本.在这种情况下,请使用上述行为:如果您为包指定了"预发布"版本号,则pip将搜索包的"预发布"版本.所以我已将此添加到我的requirements.txt:
pytz>=2013b
Run Code Online (Sandbox Code Playgroud)
当我升级我的包时,pip现在将正确搜索并安装最新版本的pytz.
这已经提交作为在pytz bug跟踪系统问题#1204837和问题#974在PIP bug跟踪系统.
停止按:如PyTz错误报告中所述,pytz的版本编号现在已经更改为,例如,2013.7 - 所以一旦升级到此,问题就不再发生了.