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

mno*_*tka 11 python pip virtualenv

  • 我有一个带有pip的virtualenv.
  • 我有自己的包索引.
  • 我想添加这个包点子,以避免调用pip install some_package -i my_index所有的时间
  • 我想将此索引仅添加到virtualenv中运行的此特定pip实例.

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

try*_*000 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


Bru*_*ado 6

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

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

[global]
index-url = http://my.pypi.index/comes/here
Run Code Online (Sandbox Code Playgroud)

问题是您将拥有所有项目的全局定义,并且您想要的是特定项目中所有用户的定义.从pip文档中,您可以使用环境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
Run Code Online (Sandbox Code Playgroud)

并指示您的用户来源而不是 virtual-env-folder/bin/activate