- 我有一个带有 pip 的 virtualenv。
- 我有自己的包裹索引。
- 我想将此包添加到 pip 以避免
pip install some_package -i my_index
一直调用 - 我只想将此索引添加到在 virtualenv 中运行的特定 pip 实例中。
在这种情况下,我应该修改哪个文件以及如何修改?
pip install some_package -i my_index
一直调用在这种情况下,我应该修改哪个文件以及如何修改?
我遇到了同样的问题,发现 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
我从来没有尝试过使用我自己的索引,但是经过一些研究,这篇文章应该涵盖了你想做的事情。
基本上,您需要将以下内容添加到您的~/.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