У меня есть внутренний пакет Python, который я устанавливаю для tox
pip install git+ssh://[email protected]/org/repo.git
Это работает.
Что не работает, так это установить дополнительный server
.
pip install git+ssh://[email protected]/org/repo.git[server]'
git clone завершился ошибкой с кодом ошибки 128 (не удалось клонировать)
pip install git+ssh://[email protected]/org/repo.git [server]
Клонирование работает, Invalid requirement: '[server]'
(исключение при разборе
pip install -e git+ssh://[email protected]/org/repo#egg=repo[server]
Не удалось определить имя требования для 'git + ssh://[email protected]/org/repo.git', укажите его с помощью # egg = your_package_name
Я думаю, что на меня может повлиять эта ошибка: Как я могу установить дополнения с помощью 'pip install git + ssh'?
Мой (упрощенный) tox.ini
:
[tox]
skipsdist = True
envlist = begin,py35,py36,end
[testenv]
commands =
pip install -e git+ssh://[email protected]/org/repo#egg=repo[server]
Вы можете использовать --install-option
для перенаправления параметров setuptools
, поэтому следующее должно работать:
pip install --install-option="--extras-require=server" git+ssh://[email protected]/org/repo.git
Смотрите также:
$ pip install --help
Usage:
pip install [options] <archive url/path> ...
[...]
Install Options:
[...]
--install-option <options> Extra arguments to be supplied to the setup.py install command (use like --install-option="--install-scripts=/usr/local/bin"). Use multiple --install-option options to pass multiple options to setup.py install. If you are
using an option with a directory path, be sure to use absolute path.
--global-option <options> Extra global options to be supplied to the setup.py call before the install command.
pip install git+url#egg=name[extras]
дополнительные компоненты анализируются и устанавливаются pip
, тогда как передача параметра установки означает, что pip
будет игнорировать дополнительные элементы и ими будет управлять либо easy_install
(если setuptools.setup
используется в скрипте установки) или stdlib (случай distutils.core.setup
).
--install-option
? Может быть, что-то вроде--install-option="--extras-require=server"
может работать ...pip
чтобы иметь возможность отделить git url от дополнительных метаданных.pip install git+ssh://[email protected]/org/repo.git#egg=project[server]
будет работать.