如何在virtualenv中添加自己的pip运行索引?

时间:2013-06-10 13:24:41

标签: python virtualenv pip

  • 我有一个带有pip的virtualenv。
  • 我有自己的包索引。
  • 我想将此包添加到pip以避免始终调用pip install some_package -i my_index
  • 我想将此索引仅添加到在virtualenv中运行的此特定pip实例。

在这种情况下,我应该修改哪个文件以及如何修改?

2 个答案:

答案 0 :(得分:7)

我遇到了同样的问题,发现pip事实上支持当前版本 https://pip.pypa.io/en/latest/user_guide.html#config-file

在virtualenv中:

在Unix和Mac OS X上,文件为 $ VIRTUAL_ENV / pip.conf
在Windows上,文件为:%VIRTUAL_ENV%\ pip.ini

答案 1 :(得分:5)

我从未尝试使用自己的索引,但经过一些研究this article应该涵盖您想要做的事情。

基本上,您需要将以下内容添加到~/.pip/pip.conf(位于%HOME%\pip\pip.ini的Windows系统上):

[global]
index-url = http://my.pypi.index/comes/here

问题在于,您将拥有所有项目的全局定义,并且您想要的是特定项目中所有用户的定义。从pip documentation开始,您可以使用环境var PIP_CONFIG_FILE

更改配置文件查找

您可以编辑virtual-env-folder/bin/activate脚本以包含此环境var,但问题是创建新的虚拟环境会丢失此更改并且无法自动执行。您可以做的是在项目的根目录中创建.pip/pip.conf文件,并在项目的根目录上创建一个简单的activate-virtual-env脚本,其中包含以下内容:

pushd $(dirname $0)
export PIP_CONFIG_FILE="$(pwd)/.pip/pip.conf"
source "$(pwd)/virtual-env-folder/bin/activate"
popd

并指示您的用户使用此文件而不是virtual-env-folder/bin/activate