Я создаю файл setup.py
для проекта, который зависит от частных репозиториев GitHub. Соответствующие части файла выглядят следующим образом:
from setuptools import setup
setup(name='my_project',
...,
install_requires=[
'public_package',
'other_public_package',
'private_repo_1',
'private_repo_2',
],
dependency_links=[
'https://github.com/my_account/private_repo_1/master/tarball/',
'https://github.com/my_account/private_repo_2/master/tarball/',
],
...,
)
Я использую setuptools
вместо distutils
, потому что последний не поддерживает аргументы install_requires
и dependency_links
в ответе this.
В приведенном выше установочном файле не удается получить доступ к приватным репозиториям с ошибкой 404 - что следует ожидать, так как GitHub возвращает 404 для несанкционированных запросов для частного репозитория. Однако я не могу понять, как сделать аутентификацию setuptools
.
Вот некоторые вещи, которые я пробовал:
-
Используйте
git+ssh://
вместоhttps://
вdependency_links
, как если бы я установил репо сpip
. Это не удается, потому что setuptools не распознает этот протокол ( "неизвестный тип URL: git + ssh" ), хотя распространяет документацию говорит, что он должен, Тожеgit+https
иgit+http
. -
https://<username>:<password>@github.com/...
- все равно получите значение 404. (Этот метод не работает сcurl
илиwget
из командной строки - хотяcurl -u <username> <repo_url> -O <output_file_name>
работает.) -
Обновление параметров настройки (0.9.7) и virtualenv (1.10) до последних версий. Также попытался установить дистрибутив, хотя этот обзор говорит, что он был объединен обратно в setuptools. В любом случае, нет кубиков.
В настоящее время я просто setup.py
распечатываю предупреждение о том, что частные репозитории необходимо загружать отдельно. Это, очевидно, меньше идеала. Я чувствую, что там что-то очевидное, что я скучаю, но не могу думать, что это может быть.:)
Дубликат-иш вопрос без ответов здесь.