Я создаю 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
аргументы за этот ответ.
Вышеупомянутый установочный файл не может получить доступ к частным репозиториям с ошибкой 404 - чего и следовало ожидать, поскольку GitHub возвращает 404 на неавторизованные запросы для частного репозитория. Однако я не могу понять, как сделать setuptools
аутентификацию.
Вот несколько вещей, которые я пробовал:
Используйте
git+ssh://
вместоhttps://
in,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>
делает работу.)Обновление setuptools (0.9.7) и virtualenv (1.10) до последних версий. Также попытался установить дистрибутив, хотя в этом обзоре говорится, что он был снова объединен с setuptools. В любом случае, никаких кубиков.
В настоящее время я только что setup.py
распечатал предупреждение о том, что частные репозитории необходимо загружать отдельно. Это явно далеко не идеально. Я чувствую, что мне не хватает чего-то очевидного, но не могу представить, что это могло быть. :)
Дубликат иш вопрос, без ответа здесь .