Установка из пользовательского индекса setup.py - PullRequest
0 голосов
/ 10 октября 2018

Я являюсь сопровождающим пакета, который имеет зависимости от пакетов, размещенных в нашем собственном хранилище pip.

Я хочу, чтобы эти пакеты также устанавливались при выполнении pip install mypackage.

setup(
  name='mypackage',
  version='1.1.2',
  description='My awesome package',
  dependency_links=[
    'http://www.myrepo.se/packages/mydep1/',
    'http://www.myrepo.se/packages/mydep2/'
  ]
  install_requires=[
    'mydep1==1.0.0',
    'mydep2==5.6.7'
  ]
)

Структура папок в репо следующая:

packages/
  mydep1/
    mydep1-1.0.0.tar.gz
  mydep2/
    mydep2-5.5.1.tar.gz
    mydep2-5.6.7.tar.gz

Все в соответствии с принятым ответом на этот вопрос Использование дополнительного URL-адреса индекса пакета python с setup.py

Однако это не работает.Я получаю сообщение об ошибке:

Collecting mydep1 (from mypackage==1.1.2)
  Could not find a version that satisfies the requirement mydep1 (from mypackage==1.1.2) (from versions: )
No matching distribution found for mydep1 (from mypackage==1.1.2)

Когда я добавил дополнительный URL-адрес индекса в мой файл require.txt перед тем, как это сделать, мне пришлось добавить URL-адрес в качестве доверенного хоста.Это актуально?Также я использую python 3.5.3

EDIT: я активировал подробный вывод из pip, и он даже не пытается найти пакет из моего репо.

1 location(s) to search for versions of mydep1:
  * https://pypi.python.org/simple/mydep1/
  Getting page https://pypi.python.org/simple/mydep1/
  ...

1 Ответ

0 голосов
/ 10 октября 2018

Кажется, pip не обрабатывает ссылки на зависимости, если вы явно не указываете это (что, к сожалению, означает, что все потребители mypackage должны знать об этом).

pip install --process-dependency-links mypackage

, поскольку mypackageтакже размещенный в том же хранилище, это означает, что потребители requirements.txt должны выглядеть как

--trusted-host http://www.myrepo.se/
--extra-index-url http://www.myrepo.se/packages
--process-dependency-links

mypackage==1.1.2
...