paquetes mac librerias instalar agregar python git pip setup.py

python - mac - Cómo incluir dependencias git en setup.py para instalar pip



pip install python 3 (1)

Necesito incluir paquetes de Python disponibles a través de repositorios públicos de Github junto con mi paquete de Python (2.7). Mi paquete debe ser instalable a través de pip usando setup.py .

Hasta ahora, esto podría hacerse usando dependency_links en el archivo setup.py :

setuptools.setup( name="my_package", version="1.0", install_requires=[ "other_package==1.2" ], dependency_links=[ "https://github.com/user/other_package/tarball/master#egg=other_package-1.2" ] )

Esto aún funciona cuando el paquete se instala con el --process-dependency-links , pero la funcionalidad dependency_links parece estar en desuso, ya que:

pip install git+https://github.com/user/my_package@master#egg=my_package-1.0 --process-dependency-links

me da la siguiente advertencia:

DEPRECATION: Dependency Links processing has been deprecated and will be removed in a future release.

¿Hay alguna manera alternativa de incluir las dependencias de git en el archivo setup.py con soporte para la instalación de pip?

Editar (17/10/2016) para aclarar mi caso de uso:

Digamos que encuentro un error en other_package . Levanto el repositorio respectivo en Github, arreglo el error y hago una solicitud de extracción. Mi solicitud de extracción no se acepta de inmediato (o nunca lo será porque el paquete ya no se mantiene activamente). Me gustaría distribuir my_package junto con mi fork of other_package y quiero que los usuarios puedan instalar mi my_package sin ningún conocimiento adicional sobre los detalles de este requisito y sin tener que proporcionar ninguna bandera adicional en la instalación. Los usuarios de my_package deberían poder incluir my_package como requisito en sus propios paquetes personalizados.

¿Cómo se puede lograr teniendo compatibilidad con los diferentes modos de instalación (ruedas, huevos, desarrollo, ...) en mente?


Personalmente, evitaría incluir repositorios git como dependencias. En los escenarios que describes, veo dos opciones.

Donde el paquete no se mantiene

Si un paquete no se mantiene, puede bifurcar el proyecto y distribuir su propia versión, o puede distribuir el código bifurcado como un submódulo de su propio código (es decir, incluir la dependencia externa directamente en su paquete distribuible)

Personalmente prefiero distribuir mi propia versión.

Donde el paquete aún debe incluir su corrección de errores

En este caso, distribuiría el código fijo como parte de su paquete hasta el momento en que se solucione el error.