Estoy creando un setup.pyarchivo para un proyecto que depende de repositorios privados de GitHub. Las partes relevantes del archivo se ven así:
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/',
],
...,
)
Estoy usando en setuptoolslugar de distutilsporque este último no admite los argumentos install_requiresy dependency_linkssegún esta respuesta.
El archivo de configuración anterior no puede acceder a los repositorios privados con un error 404, lo cual es de esperar, ya que GitHub devuelve un 404 a solicitudes no autorizadas de un repositorio privado. Sin embargo, no puedo averiguar cómo setuptoolsautenticarme.
Aquí hay algunas cosas que he probado:
Utilizar
git+ssh://en lugar dehttps://endependency_linkscomo lo haría si se instala con el repositoriopip. Esto falla porque setuptools no reconoce este protocolo ("tipo de URL desconocido: git + ssh"), aunque la documentación de distribución dice que debería hacerlo. Ídemgit+httpsygit+http.https://<username>:<password>@github.com/...- sigue obteniendo un 404. (Este método tampoco funciona concurlowgetdesde la línea de comandos, aunquecurl -u <username> <repo_url> -O <output_file_name>funciona).Actualización de setuptools (0.9.7) y virtualenv (1.10) a las últimas versiones. También intenté instalar distribuir, aunque esta descripción general dice que se fusionó nuevamente con setuptools. De cualquier manera, sin dados.
Actualmente, acabo de setup.pyimprimir una advertencia de que los repositorios privados deben descargarse por separado. Obviamente, esto es menos que ideal. Siento que hay algo obvio que me estoy perdiendo, pero no puedo pensar qué podría ser. :)
Pregunta duplicada sin respuestas aquí .