Я бы хотел, чтобы pip установил зависимость, которая у меня есть на GitHub, когда пользователь выдает команду на установку исходного программного обеспечения, также из источника на GitHub. Ни один из этих пакетов не находится на PyPi (и никогда не будет).
Пользователь выдает команду:
pip -e git+https://github.com/Lewisham/[email protected]#egg=cvsanaly
В этом репо есть requirements.txt
файл с другой зависимостью от GitHub:
-e git+https://github.com/Lewisham/repositoryhandler#egg=repositoryhandler
Я бы хотел иметь единственную команду, которую пользователь может ввести для установки исходного пакета, чтобы pip нашел файл требований, а затем также установил зависимость.
Этот ответ помог мне решить ту же проблему, о которой вы говорите.
Кажется, не существует простого способа для setup.py напрямую использовать файл требований для определения его зависимостей, но ту же информацию можно поместить в сам setup.py.
У меня есть этот файл requirements.txt:
Но при установке пакета, содержащего файл requirements.txt, pip игнорирует требования.
Этот setup.py, похоже, заставляет pip установить зависимости (включая мою версию django-ckeditor на github):
Изменить:
Этот ответ также содержит некоторую полезную информацию.
Указание версии как части «#egg = …» необходимо для определения того, какая версия пакета доступна по ссылке.
Обратите внимание, что если вы всегда хотите полагаться на свою последнюю версию, вы можете установить версию наdev
в install_requires, dependency_links и другом пакете setup.pyИзменить: использование
dev
в качестве версии не рекомендуется, как указано в комментариях ниже.трюк с разработчиком работает только в первый раз, а не в последующие разы. Setup.py проверяет только строку dev как версию для себя — person cflewis; 05.07.2012
@DanEEStar Верно. После установки версии пакета dev
setuptools
будет считать, что требование выполнено. Как показано в связанном ответе, вам потребуется синхронно обновить версию пакета во всех трех местах :setup.py
иinstall_requires
иdependency_links
зависимости — не очень практично. — person cflewis; 17.12.2012да, @DanEEStar, ты прав. Я отредактировал рекомендацию использовать версию ‘dev’. Спасибо вам двоим! — person cflewis; 21.02.2013
Вот небольшой скрипт, который я использовал для генерации
install_requires
иdependency_links
из файла требований.Отвечает ли это на ваш вопрос?
open('app/requirements.txt').readlines()
работает только в том случае, еслиrequirements.txt
содержит только простые спецификации версии, а не URL-адреса. Их нужно будет разделить вdependency_links
, как это сделал Саймон Шаретт. — person cflewis; 17.12.2012