Как установить зависимости из локального репозитория Python с помощью Tox? - PullRequest
1 голос
/ 03 июня 2019

Введение

Я хотел бы установить некоторые зависимости (local-package1 и local-package2) в virtualenv с использованием Tox. Эти зависимости являются пакетами, которые существуют только в моем локальном индексе пакетов Python (внутри экземпляра Artifactory).

Попытка

Вот мой tox.ini:

[tox]
envlist = py27
indexserver =
    LOCAL =  https://me:abc123@artifactory.example.com/api/pypi/pypi-local/simple

[testenv]
deps =
    :LOCAL:local-package1
    mock
    pykwalify
    :LOCAL:local-package2
    xlrd
    XlsxWriter
    xlwt
    yamllint
commands =
    make.sh

Вот вывод из tox -v:

using tox.ini: repo/tox.ini
using tox-3.7.0 from /usr/local/lib/python2.7/site-packages/tox/__init__.pyc
GLOB sdist-make: ~/repo/setup.py
  ~/repo$ /usr/local/opt/python@2/bin/python2.7 ~/repo/setup.py sdist --formats=zip --dist-dir ~/repo/.tox/dist >~/repo/.tox/log/tox-0.log
package .tmp/package/1/example-0.0.0.zip links to dist/example-0.0.0.zip (~/repo/.tox)
py27 cannot reuse: no previous config ~/repo/.tox/py27/.tox-config1
py27 create: ~/repo/.tox/py27
  ~/repo/.tox$ /usr/local/opt/python@2/bin/python2.7 -m virtualenv --python /usr/local/opt/python@2/bin/python2.7 py27 >~/repo/.tox/py27/log/py27-0.log
py27 installdeps: :LOCAL:local-package1, mock, pykwalify, :LOCAL:local-package2, xlrd, XlsxWriter, xlwt, yamllint
  ~/repo$ ~/repo/.tox/py27/bin/python -m pip install -i https://me:abc123@artifactory.example.com/api/pypi/pypi-local/simple local-package1 local-package2 >~/repo/.tox/py27/log/py27-1.log

И выполнение tail -f ~/repo/.tox/py27/log/py27-1.log дает следующее:

actionid: py27
msg: getenv
cmdargs: 'repo/.tox/py27/bin/python -m pip install -i https://me:abc123@artifactory.example.com/api/pypi/pypi-local/simple local-package1 local-package2'

DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Looking in indexes: https://me:****@artifactory.example.com/api/pypi/pypi-local/simple, https://artifactory.example.com/api/pypi/pypi-local/simple
Collecting local-package1

и кажется, что он висит бесконечно.

Если я запускаю команду:

repo/.tox/py27/bin/python -m pip install -i https://me:abc123@artifactory.example.com/api/pypi/pypi-local/simple local-package1 local-package2

за пределами virtualenv, я могу установить эти пакеты без проблем.

Вопрос

Как правильно установить зависимости с Tox, который включает аутентификацию в индексе пакетов Python?

...