ссылки на установку ссылок

Я использую python version 2.7 а pip version is 1.5.6 .

Я хочу установить дополнительные библиотеки из url, например git repo, на setup.py.

Я устанавливал дополнительные параметры в параметре install_requires в setup.py . Это означает, что для моей библиотеки требуются дополнительные библиотеки, и они также должны быть установлены.

 ... install_requires=[ "Django", .... ], ... 

Но URL-адреса, подобные git-repos, недопустимы в install_requires в setup.py . Предположим, что я хочу установить библиотеку из github. Я искал эту проблему, и я нашел то, что я могу поместить в библиотеки таким образом, чтобы в dependency_links в setup.py . Но это все еще не работает. Вот мое определение ссылок зависимостей;

 dependency_links=[ "https://github.com/.../tarball/master/#egg=1.0.0", "https://github.com/.../tarball/master#egg=0.9.3", ], 

Ссылки действительны. Я могу загрузить их из интернет-браузера с этими URL-адресами. Эти дополнительные библиотеки по-прежнему не установлены с моей настройкой. Я также попробовал параметр --process-dependency-links для принудительного подключения. Но результат такой же. Я не ошибаюсь, когда пикаю.

После установки я не вижу никакой библиотеки в результате pip freeze в dependency_links .

Как я могу заставить их загружаться с помощью моей установки setup.py ?

Отредактировано:

Вот моя полная setup.py

 from setuptools import setup try: long_description = open('README.md').read() except IOError: long_description = '' setup( name='esef-sso', version='1.0.0.0', description='', url='https://github.com/egemsoft/esef-sso.git', keywords=["django", "egemsoft", "sso", "esefsso"], install_requires=[ "Django", "webservices", "requests", "esef-auth==1.0.0.0", "django-simple-sso==0.9.3" ], dependency_links=[ "https://github.com/egemsoft/esef-auth/tarball/master/#egg=1.0.0.0", "https://github.com/egemsoft/django-simple-sso/tarball/master#egg=0.9.3", ], packages=[ 'esef_sso_client', 'esef_sso_client.models', 'esef_sso_server', 'esef_sso_server.models', ], include_package_data=True, zip_safe=False, platforms=['any'], ) 

Отредактировано 2:

Вот пиш-журнал;

 Downloading/unpacking esef-auth==1.0.0.0 (from esef-sso==1.0.0.0) Getting page https://pypi.python.org/simple/esef-auth/ Could not fetch URL https://pypi.python.org/simple/esef-auth/: 404 Client Error: Not Found Will skip URL https://pypi.python.org/simple/esef-auth/ when looking for download links for esef-auth==1.0.0.0 (from esef-sso==1.0.0.0) Getting page https://pypi.python.org/simple/ URLs to search for versions for esef-auth==1.0.0.0 (from esef-sso==1.0.0.0): * https://pypi.python.org/simple/esef-auth/1.0.0.0 * https://pypi.python.org/simple/esef-auth/ Getting page https://pypi.python.org/simple/esef-auth/1.0.0.0 Could not fetch URL https://pypi.python.org/simple/esef-auth/1.0.0.0: 404 Client Error: Not Found Will skip URL https://pypi.python.org/simple/esef-auth/1.0.0.0 when looking for download links for esef-auth==1.0.0.0 (from esef-sso==1.0.0.0) Getting page https://pypi.python.org/simple/esef-auth/ Could not fetch URL https://pypi.python.org/simple/esef-auth/: 404 Client Error: Not Found Will skip URL https://pypi.python.org/simple/esef-auth/ when looking for download links for esef-auth==1.0.0.0 (from esef-sso==1.0.0.0) Could not find any downloads that satisfy the requirement esef-auth==1.0.0.0 (from esef-sso==1.0.0.0) Cleaning up... Removing temporary dir /Users/ahmetdal/.virtualenvs/esef-sso-example/build... No distributions at all found for esef-auth==1.0.0.0 (from esef-sso==1.0.0.0) Exception information: Traceback (most recent call last): File "/Users/ahmetdal/.virtualenvs/esef-sso-example/lib/python2.7/site-packages/pip/basecommand.py", line 122, in main status = self.run(options, args) File "/Users/ahmetdal/.virtualenvs/esef-sso-example/lib/python2.7/site-packages/pip/commands/install.py", line 278, in run requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle) File "/Users/ahmetdal/.virtualenvs/esef-sso-example/lib/python2.7/site-packages/pip/req.py", line 1177, in prepare_files url = finder.find_requirement(req_to_install, upgrade=self.upgrade) File "/Users/ahmetdal/.virtualenvs/esef-sso-example/lib/python2.7/site-packages/pip/index.py", line 277, in find_requirement raise DistributionNotFound('No distributions at all found for %s' % req) DistributionNotFound: No distributions at all found for esef-auth==1.0.0.0 (from esef-sso==1.0.0.0) 

Кажется, он не использует источники в dependency_links .

  • Рекомендации по лучшей упаковке Python Daemon
  • py2app подбирает .git subdir пакета во время сборки
  • easy_install с pypy, в то время как Python установлен
  • pip установить тестовые зависимости для tox из setup.py
  • Нет модуля с именем pkg_resources
  • Reference requirements.txt для install_requires kwarg в файле setup.ools setup.py?
  • Скрипт после установки с Python setuptools
  • Проект Python с использованием буферов протокола, проблемы с развертыванием
  • 3 Solutions collect form web for “ссылки на установку ссылок”

    Вы также должны убедиться, что вы также включили зависимость в свои install_requires .

    Вот пример setup.py

     #!/usr/bin/env python from setuptools import setup setup( name='foo', version='0.0.1', install_requires=[ 'balog==0.0.7' ], dependency_links=[ 'https://github.com/balanced/balog/tarball/master#egg=balog-0.0.7' ] ) 

    Вот вам проблема с вашим примером setup.py :

    Вам не хватает имени яйца в настройках ссылок, которые вы установили.

    У тебя есть

    https://github.com/egemsoft/esef-auth/tarball/master/#egg=1.0.0.0

    Тебе нужно

    https://github.com/egemsoft/esef-auth/tarball/master/#egg=esef-auth-1.0.0.0

    Pip удалил поддержку dependency_links некоторое время назад. Последняя версия pip, поддерживающая dependency_links, – 1.3.1 , для ее установки

     pip install pip==1.3.1 

    ваши ссылки зависимостей должны работать в этот момент. Обратите внимание, что dependency_links всегда были последним средством для pip, т.е. если пакет с таким же именем существует на pypi, он будет выбран по вашему.

    Обратите внимание, что https://github.com/pypa/pip/pull/1955, похоже, начинает разрешать зависимостям, и их сохранил, но вам может понадобиться использовать некоторые ключи командной строки для использования более новой версии pip.

    EDIT : По состоянию на pip 7 … они переосмыслили ссылки на разделы и включили их, даже несмотря на то, что они не удалили уведомление об изнашивании, из обсуждений, которые они, похоже, остались здесь. С pip> = 7 вот как вы можете установить вещи

     pip install -e . --process-dependency-links --allow-all-external 

    Или добавьте следующее в файл pip.conf, например /etc/pip.conf

     [install] process-dependency-links = yes allow-all-external = yes trusted-host = bitbucket.org github.com 

    РЕДАКТИРОВАТЬ

    Трюк, который я узнал, – это увеличить номер версии до действительно высокого уровня, чтобы убедиться, что пип не предпочитает версию ссылки без зависимостей (если это то, что вы хотите). В примере выше сделайте ссылку зависимостей:

     "https://github.com/egemsoft/django-simple-sso/tarball/master#egg=999.0.0", 

    Также убедитесь, что версия похожа на пример или является версией даты, любое другое управление версиями заставит pip подумать о своей dev-версии и не будет ее устанавливать.

    Я столкнулся с аналогичной ситуацией, когда хочу использовать стройную как одну из моих зависимостей в пакете. Однако у вас есть предостережение: если вы используете окна, вы должны использовать файл .whl с http://www.lfd.uci.edu/~gohlke/pythonlibs/ . В противном случае вам нужно установить компилятор C, чего я не хочу. Я хочу, чтобы пользователь просто использовал pip install mypackage вместо того, чтобы устанавливать кучу других вещей.

    И если у вас есть типичная настройка с dependency_links

     setup( name = 'streettraffic', packages = find_packages(), # this must be the same as the name above version = '0.1', description = 'A random test lib', author = 'Costa Huang', author_email = 'Costa.Huang@outlook.com', install_requires=['Shapely==1.5.17'], dependency_links = ['http://www.lfd.uci.edu/~gohlke/pythonlibs/ru4fxw3r/Shapely-1.5.17-cp36-cp36m-win_amd64.whl'] ) 

    и запустите python setup.py install , он просто собирается красиво на Pypi и вызовет проблемы при установке Windows. После нескольких часов исследований я нашел эту ссылку Force setuptools для использования dependency_links для установки mysqlclient и в основном использовать from setuptools.command.install import install as _install для ручной from setuptools.command.install import install as _install .

     from setuptools.command.install import install as _install from setuptools import setup, find_packages import pip class install(_install): def run(self): _install.do_egg_install(self) # just go ahead and do it pip.main(['install', 'http://localhost:81/Shapely-1.5.17-cp36-cp36m-win_amd64.whl']) setup( name = 'mypackage', packages = find_packages(), # this must be the same as the name above version = '0.1', description = 'A random test lib', author = 'Costa Huang', author_email = 'test@outlook.com', cmdclass={'install': install} ) 

    И сценарий отлично работает. Надеюсь, поможет.

    Python - лучший язык программирования в мире.