Я створюю 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роздрукував попередження про те, що приватні репозиторії потрібно завантажувати окремо. Це, очевидно, менше ідеалу. Я відчуваю, що чогось очевидного, чого мені не вистачає, але не можу думати, що це може бути. :)
Дубльоване запитання, тут немає відповідей .