Python pip——index-url不限制存储库搜索



我试图指示pip仅使用本地存储库安装软件包(在我的内部网络中的另一台服务器上)。要求是永远不应该咨询远程存储库(如pypi),即使本地存储库没有匹配的。

第一次尝试:

$ 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

到目前为止,我发现的唯一解决方法是pip下载(不安装),然后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出现故障时该怎么办"博客所建议的那样,但这也不能阻止远程存储库的尝试。

有没有更直接的方法来完成这个?考虑到pip非常受欢迎(有很多原因),我宁愿不使用easy_install。这种方法在所有情况下都有效吗?

更新:修复升级pip.

最新更新