Tworzę setup.py
plik dla projektu, który zależy od prywatnych repozytoriów GitHub. Odpowiednie części pliku wyglądają następująco:
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/',
],
...,
)
Używam setuptools
zamiast, distutils
ponieważ ten ostatni nie obsługuje argumentów install_requires
i dependency_links
na tę odpowiedź.
Powyższy plik instalacyjny nie uzyskuje dostępu do prywatnych repozytoriów z błędem 404 - czego należy się spodziewać, ponieważ GitHub zwraca 404 do nieautoryzowanych żądań prywatnego repozytorium. Jednak nie mogę dowiedzieć się, jak dokonać setuptools
uwierzytelnienia.
Oto kilka rzeczy, które wypróbowałem:
Użyj
git+ssh://
zamiasthttps://
in,dependency_links
tak jak w przypadku instalowania repozytorium zpip
. Nie udaje się to, ponieważ setuptools nie rozpoznaje tego protokołu („nieznany typ adresu URL: git + ssh”), chociaż dokumentacja dystrybucji mówi, że powinien. Jak wyżejgit+https
igit+http
.https://<username>:<password>@github.com/...
- jeszcze dostać 404. (ta metoda nie działa zcurl
lubwget
z linii poleceń albo - choćcurl -u <username> <repo_url> -O <output_file_name>
nie działa).Aktualizacja setuptools (0.9.7) i virtualenv (1.10) do najnowszych wersji. Próbowałem również zainstalować dystrybucję, chociaż w tym przeglądzie stwierdzono, że została ona ponownie scalona z narzędziami instalacyjnymi. Tak czy inaczej, bez kości.
Obecnie właśnie setup.py
wydrukowałem ostrzeżenie, że prywatne repozytoria należy pobrać osobno. To jest oczywiście mniej niż idealne. Czuję, że jest coś oczywistego, czego mi brakuje, ale nie mogę pomyśleć, co to może być. :)
Zduplikowane pytanie bez odpowiedzi tutaj .