Pregunta Haz que pip trabaje con el repositorio gitub y gitub


Estoy escribiendo una aplicación de Python que depende de otra que está alojada en un repositorio de github (nunca en pypi) por razones de desarrollo.

Vamos a llamarlos:

  • Aplicación escrita: AppA
  • Aplicación en github: AppB

En la aplicación A, setup.py es como:

# coding=utf-8
import sys
try:
    from setuptools import setup, find_packages
except ImportError:
    import distribute_setup
    distribute_setup.use_setuptools()
    from setuptools import setup, find_packages

setup(
    ...
    install_requires=[
        # other requirements that install correctly
        'app_b==0.1.1'
    ],
    dependency_links=[
        'git+https://github.com/user/app_b.git@0.1.1#egg=app_b-0.1.1'
    ]
)

Ahora AppA está siendo construido por Jenkins CI con cada impulso y obtengo una falla debido a que se produce el siguiente error:

error: Download error for git+https://github.com/user/app_b.git@0.1.1: unknown url type: git+https

Lo curioso es que esto solo sucede en Jenkins, funciona perfectamente en mi computadora. Probé las otras dos URL SSH que da github y ni siquiera se consideran para su descarga.

Ahora, AppA se incluye en el archivo de requisitos de un proyecto que también está construyendo Jenkins, por lo que instala las dependencias manualmente a través de pip install AppA  pip install AppB no es una opción, las dependencias se instalan automáticamente al incluirse en el requirements.txt.

¿Hay alguna manera de hacer que pip y git con github urls trabajen juntos?

Cualquier ayuda será muy apreciada :)

¡Gracias por adelantado!


7
2018-02-06 19:49


origen


Respuestas:


El problema no es con pip, Es con setuptools. El responsable de la setup() llamada es setuptools paquete (herramientas de configuración o distribuir proyecto).

Ninguno setuptools o distribute entiendo ese tipo de url, entienden los archivos tarballs / zip.

Intenta señalar la URL de descarga de Github, generalmente un archivo comprimido.

Tu dependency_links la entrada probablemente se verá así:

dependency_links=[
    'https://github.com/user/app_b/archive/0.1.1.zip#egg=app_b-0.1.1'
]

Para obtener más información, eche un vistazo a http://peak.telecommunity.com/DevCenter/setuptools#dependencies-that-aren-t-in-pypi


12
2018-02-18 01:11



De documentación de pip -

pip currently supports cloning over git, git+http and git+ssh:

git+git://git.myproject.org/MyProject#egg=MyProject
git+http://git.myproject.org/MyProject#egg=MyProject
git+ssh://git.myproject.org/MyProject#egg=MyProject

Intenta reemplazar git+https con git+git.


2
2018-02-06 20:18



Preguntas populares