Объявите требование для установки из ветки github - PullRequest
0 голосов
/ 25 мая 2018

Как правильно указать конкретную ветку репо в качестве зависимости и использовать ее для запуска тестов?

Если вы укажете только dependency_links, setuptools установит его какзависимость, но не устанавливает его для запуска теста:

setup(
    packages=['utils', 'tokens'],
    dependency_links=[
        'https://github.com/Demonware/jose/tarball/python3#egg=jose-1.1.0'
    ],
    # install_requires=['jose'],
    use_2to3=True,
    test_suite='test_jwt',
    zip_safe=True,
)

Я полагаюсь на python3 ветвь библиотеки jose.Когда я запускаю setup.py test, он жалуется, что не может найти пакет jose.

Если я добавлю install_requires, он просто устанавливает основную ветвь, а не нужную мне python3.

1 Ответ

0 голосов
/ 25 мая 2018

Попробуйте:

dependency_links=[
    'https://github.com/Demonware/jose@python3#egg=jose-1.1.0'
],
install_requires=['jose'],

Позвольте мне объяснить.URL-адреса pip/setuptools VCS имеют следующую структуру:

git+https://repoURL@reference#egg=project-version

RepoURL - это URL-адрес хранилища VCS (https://github.com/Demonware/jose в вашем случае).

Ссылка - это тег, ветвь илиидентификатор фиксации (SHA1, может быть сокращен до 7-10 символов);в вашем случае это ветвь python3.

Имя и версия проекта в хэше #egg= необходимы для setuptools, чтобы распознать URL как URL для проекта, названного в install_requires - setuptools.перед загрузкой проекта узнайте имя, поэтому хэш #egg= - единственный способ передать эту информацию.Версия не является строго необходимой, но будет полезна для такого случая, как install_requires=['jose>=1.1.0'].

...