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