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

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

4

2 回答 2

11

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

在虚拟环境中:

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

于 2015-07-14T15:32:39.620 回答
8

我从来没有尝试过使用我自己的索引,但是经过一些研究,这篇文章应该涵盖了你想做的事情。

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

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

问题是您将拥有所有项目的全局定义,而您想要的是特定项目中所有用户的定义。从pip 文档中,您可以使用 environment var 更改配置文件查找PIP_CONFIG_FILE

您可以编辑virtual-env-folder/bin/activate脚本以包含此环境变量,但问题是创建新的虚拟环境会丢失此更改并且无法自动化。您可以做的是在项目的根目录中创建.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

于 2013-06-10T13:34:57.130 回答