2013-05-14 169 views
2

我试图指示pip仅使用本地存储库(位于内部网络中的不同服务器上)安装软件包。要求是远程存储库(如pypi)不应该被咨询,即使本地存储库没有匹配。Python pip --index-url不限制存储库搜索

第一次尝试:

$ pip install --index-url=http://<local.repo.host>/packages/pypi/data/web/simple/ paramiko --verbose 

然而,当我运行上面的命令中,很显然,其他仓库仍在咨询:

.... 
Ignoring link http://www.amk.ca/files/python/pycrypto-1.9a5.tar.gz 
(from http://<local.repo.host>/packages/pypi/data/web/simple/pycrypto/), 
version 1.9a5 doesn't match >=2.1,!=2.4 

迄今为止我发现的唯一的解决方法是到点下载(无需安装),然后easy_install tarball。

实施例:

$ sudo pip install --no-install --download /tmp/ --index-url=http://<local.repo.host>/packages/pypi/data/web/simple/ paramiko 
$ sudo easy_install --allow-hosts=<local.repo.host> --index-url http://<local.repo.host>/packages/pypi/data/web/simple/ /tmp/paramiko-1.9.0.tar.gz 

这导致远程存储库被阻塞:

Link to http://www.amk.ca/files/python/pycrypto-1.9a5.tar.gz 
***BLOCKED*** by --allow-hosts 

我还试图〜/ .pydistutils.cfg设置为:

[easy_install] 
index_url = http://<local.repo.host>/packages/pypi/data/web/simple/ 
allow_hosts = <local.repo.host> 

和〜 /.pip/pip.conf发送到:

[global] 
index-url = http://<local.repo.host>/packages/pypi/data/web/simple/ 

正如“PyPI停机后该怎么办”博客中所建议的那样,但这并不妨碍尝试远程存储库。

有没有一种更直接的方法来完成这个?我宁愿不使用easy_install,因为pip非常受欢迎(原因很多)。这种方法是否适用于所有情况?

回答

0

更新:通过升级pip修复。