Как добавить собственный индекс в pip, работающий в virtualenv?
- У меня есть virtualenv с пипсом внутри.
- У меня есть собственный индекс пакета.
- Я хочу добавить этот пакет в pip, чтобы избежать вызова
pip install some_package -i my_index
все время
- Я хочу добавить этот индекс только к этому конкретному экземпляру экземпляра, запущенному в virtualenv.
В этом случае, какой файл следует изменить и как?
Ответы
Ответ 1
Я столкнулся с той же проблемой, и обнаружил, что 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
Ответ 2
Я никогда не пробовал использовать свой собственный индекс, но после некоторых исследований эта статья должна охватывать то, что вы хотите сделать.
В основном вам нужно добавить следующее к ~/.pip/pip.conf
(в системах Windows, расположенных в %HOME%\pip\pip.ini
):
[global]
index-url = http://my.pypi.index/comes/here
Проблема в том, что у вас будет глобальное определение для всех ваших проектов, а то, что вы хотите, - это определение для всех ваших пользователей в конкретном проекте. Из pip документации вы можете изменить поиск в конфигурационном файле, используя среду var PIP_CONFIG_FILE
Вы можете отредактировать virtual-env-folder/bin/activate
script, чтобы включить эту среду var, но проблема в том, что создание новой виртуальной среды потеряет это изменение и не будет автоматизировано. Вы можете создать файл .pip/pip.conf
в корне вашего проекта и создать простой activate-virtual-env
script также в корне проекта:
pushd $(dirname $0)
export PIP_CONFIG_FILE="$(pwd)/.pip/pip.conf"
source "$(pwd)/virtual-env-folder/bin/activate"
popd
и проинструктируйте своих пользователей, чтобы они отправили этот файл вместо virtual-env-folder/bin/activate