我最近从事一些python项目,并且在pip
未安装某些要求的最新版本时遇到很多问题。我在osx
,我用brew安装Python 2.7.6
。在我正在从事的项目中,我们只是简单地pip install -r requirements.txt
。在当前情况下,我需要安装argparse==1.2.1
。这是pypi网站上显示的实际最新版本
这是我的输出
Downloading/unpacking argparse==1.2.1 (from -r requirements.txt (line 4))
Could not find a version that satisfies the requirement argparse==1.2.1 (from -r requirements.txt (line 4)) (from versions: 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.8.0, 0.9.0, 0.9.1, 1.0.1, 1.0, 1.1)
Some externally hosted files were ignored (use --allow-external to allow).
Cleaning up...
No distributions matching the version for argparse==1.2.1 (from -r requirements.txt (line 4))
我曾与各种不同的,如要求类似的问题matplotlib
,我手动安装所看到这里。
如您所见,我的Mac上的pip仅具有那些argparse版本: 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.8.0, 0.9.0, 0.9.1, 1.0.1, 1.0, 1.1
我尝试使用重新安装python brew reinstall python
,然后还尝试使用一些xargs magic:重新安装所有已安装的python软件包pip freeze | xargs -I {} sudo pip install {} --upgrade --force-reinstall
。
在尝试重新安装所有内容时,我遇到了大多数软件包的麻烦:error: invalid command 'egg_info'
。我发现自己有一个旧的,setuptools
所以我pip install --upgrade setuptools
和我现在可以重新安装所有内容,但是仍然存在相同的问题argparse
。argparse仍然是同样的问题。
我问一个刚安装了osx的朋友,pip install argparse
他得到了。1.1
因此,我为一个干净的用+进行ubuntu安装的机器设置了一个precise32
无用的盒子,一点也不麻烦。python-dev
libevent-dev
argparse==1.2.1
为了继续进行该项目,我在osx上安装了argparse 1.1,它对于我正在处理的atm似乎运行良好。
我对pypi不太满意(还),但是-是否有任何原因导致我没有在pypi上显示最新版本?听起来并不是pypi上的所有库都可用于osx。有没有办法知道不同操作系统的版本可用性?
argparse1.1
似乎与1.2.1
此输出中所示的相同
vagrant@precise32:~$ python
Python 2.7.3 (default, Sep 26 2013, 20:08:41)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import argparse
>>> argparse.__version__
'1.1'
>>> quit()
vagrant@precise32:~$ pip freeze | grep argparse
argparse==1.2.1
我尝试--allow-external
在osx上使用,但没有意识到它需要再次使用软件包的名称。
sudo pip install argparse --allow-external argparse --upgrade
然后你去了:)
argparse an externally hosted file and may be unreliable
Downloading/unpacking argparse from http://argparse.googlecode.com/files/argparse-1.2.1.tar.gz#md5=2fbef8cb61e506c706957ab6e135840c
Downloading argparse-1.2.1.tar.gz (69kB): 69kB downloaded
正如Peter所指出的,pip的最新版本default to disallowing externally hosted files
。
我认为这是关键:
一些外部托管的文件被忽略(使用--allow-external允许)。
当我在这里安装argparse时,我得到
您正在安装外部托管的文件。pip的未来版本将默认不允许外部托管文件。
正在下载argparse-1.2.1.tar.gz(69kB):已下载69kB
因此,您有一个更新版本的pip,默认情况下不允许外部托管文件
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句