Какова альтернатива использованию --process-dependency-links с pip

Я использую Python 2.7. Я пытаюсь pip install репозиторий (на внутреннем github), который зависит от другого репо (также на внутреннем github). Я пробовал несколько вариантов, но тот, который работал, был таким:

(env)abc$ cat requirements.txt
 -e git://github.abc.com/abc/abc.git#egg=my_abc --process-dependency-links

(env)abc$ pip install -r requirements.txt

Но я получил предупреждение при запуске командной строки, в котором говорилось:

"УСТАРЕВАНИЕ: обработка ссылок зависимостей объявлена ​​устаревшей и будет удалена в будущем выпуске."

Я на пипсе v7.1.2. Как правильно это сделать?


person Ankur Agarwal    schedule 22.09.2015    source источник
comment
Я не думаю, что есть альтернатива   -  person toto_tico    schedule 20.09.2017


Ответы (2)


Вы можете использовать требования к URL PEP 508:

pip @ https://github.com/pypa/pip/archive/19.2.3.zip

Они будут работать для прямых требований (через CLI или перечисленных в requirements.txt) и пакетов, которые не загружаются с помощью pip из PyPI. Обратите внимание, что поддержка этого была выпущена в pip 18.0 (т. е. в начале 2018 года, потому что сейчас pip находится на CalVer).


В случае OP requirements.txt может остаться без изменений (хотя они хотели бы удалить --process-dependency-links), если ссылки на зависимости обновлены до формата PEP 508.

person pradyunsg    schedule 29.05.2018
comment
Обновлен мой ответ, чтобы отразить текущее положение дел. - person pradyunsg; 30.09.2019

Попробуйте использовать параметр флага --process-dependency-links. Возможно, вам также придется использовать --allow-external packagename или --allow-unverified packagename, где имя пакета на самом деле указывает любую зависимость, которую вы хотите установить, которой нет в официальном репозитории.

Примечание. Поскольку эта функция устарела, флаг --process-dependency-links скоро будет полностью удален. Я считаю, что предпочтительным подходом является предоставление файла requirements.txt. Например: пусть у меня есть определенные требования к моему проекту, поэтому я напишу это в файле requirements.txt.

&cat requirements.txt

django-compressor>=1.4,<1.5
django-grappelli>=2.6.3,<2.7
django-bootstrap-form>=3.1,<3.2

Далее я могу установить его, используя:

$ pip install -r requirements.txt

Это все, что вам нужно сделать

person coder3521    schedule 22.09.2015
comment
Пожалуйста, смотрите редактирование выше. Я уже использую файл requirements.txt с содержимым, показанным в моем исходном сообщении. Что еще мне нужно? - person Ankur Agarwal; 22.09.2015
comment
require.txt должен содержать все зависимые требования, --process-dependency-links там быть не должно, вместо этого он должен содержать список всех зависимых требований. - person coder3521; 23.09.2015
comment
Я думаю, вы тоже можете принять это как ответ. если это решило вашу цель - person coder3521; 23.09.2015
comment
@csharpcoder Заявленный предпочтительный подход не работает, потому что pip не рекурсивно анализирует файл требований! По сути, требования требования не установлены! - person Acumenus; 08.03.2017