Назад | Перейти на главную страницу

pip install, похоже, игнорирует ссылки зависимости

У меня есть приложение Python, которое зависит от нескольких пакетов. К сожалению, одного из этих пакетов нет в PyPi, поэтому мне приходится устанавливать его прямо из репозитория git.

Я пытался добавить его в свой setup.py вот так:

setup(
..,
..,
dependency_links = [
                 'https://github.com/marcuz/libpynexmo.git#egg=nexmomessage'
    ],
install_requires=[
    ..,
    'nexmomessage'
],
packages=['localpackage']

Однако это не удается: для nexmomessage не найдено ни одного дистрибутива.

Я вижу, где он создает список ссылок зависимостей: записывает dependency_links в common.egg-info / dependency_links.txt - и когда я смотрю на этот файл, URL-адрес правильный.

Если я запустил его в командной строке: pip install -e git +https://github.com/marcuz/libpynexmo.git#egg=nexmomessage

Устанавливается без проблем.

Мысли?

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

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

И начиная с пункта 7 они снова включены. Это означает, что теперь вы можете использовать dependency_links используя пункт:

pip install -e /path/to/python/module --process-dependency-links --allow-all-external

Если вы используете системный pip своего дистрибутива, вам может потребоваться обновить pip:

pip install pip --upgrade

Похоже, это произошло в запросе на вытягивание # 1519