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

Я использую Python 2.7. Я пытаюсь pip install пакет repo (на внутреннем 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

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

"DEPRECATION: обработка ссылок зависимостей устарела и будет удалена в будущей версии".

Я нахожусь на пике v7.1.2. Каков правильный способ сделать это?

Ответы

Ответ 1

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

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

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


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

Ответ 2

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

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

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