Configuración para que la instalación de pip pueda funcionar desde github.

Nos gustaría usar pip con github para instalar paquetes privados en nuestros servidores de producción. Esta pregunta tiene que ver con lo que debe estar en el repository de github para que la instalación tenga éxito.

Suponiendo la siguiente línea de comandos (que se autentica bien y trata de instalar):

pip install git+ssh://git@github.com/BlahCo/search/tree/prod_release_branch/ProductName 

¿Qué necesita residir en el ProductName? ¿Es el contenido de lo que normalmente estaría en el archivo tar después de ejecutar setup.py con la opción sdist, o es el archivo tar.gz real, o algo más?

Estoy preguntando aquí porque he probado varias variaciones y no puedo hacer que funcione. Cualquier ayuda apreciada.

Necesitas el paquete Python completo, con un archivo setup.py en él.

Un paquete llamado foo sería:

 foo # the installable package ├── foo │  ├── __init__.py │  └── bar.py └── setup.py 

E instale desde github como:

 $ pip install git+https://github.com/myuser/foo.git@v123 or $ pip install git+https://github.com/myuser/foo.git@newbranch 

Más información en https://pip.pypa.io/en/stable/reference/pip_install/#vcs-support

Tuve un problema similar cuando tuve que instalar desde github repo, pero no quería instalar git, etc.

La forma más sencilla de hacerlo es utilizando el archivo zip del paquete. Agregue /zipball/master a la URL del repository:

  $ pip install https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master Downloading/unpacking https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master Downloading master Running setup.py egg_info for package from https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master Installing collected packages: django-debug-toolbar-mongo Running setup.py install for django-debug-toolbar-mongo Successfully installed django-debug-toolbar-mongo Cleaning up... 

De esta manera, harás que pip funcione con los repositorys de fonts de github.

Si desea utilizar el archivo git necesitará git y algo como la entrada a continuación para obtener de forma anónima la twig maestra en sus requirements.txt .

Para la instalación regular:

 git+git://github.com/celery/django-celery.git 

Para la instalación ” editable “:

 -e git://github.com/celery/django-celery.git#egg=django-celery 

El modo editable descarga el código fuente del proyecto en ./src en el directorio actual. Permite que la pip freeze de la pipa genere la ubicación github correcta del paquete.

Clona el repository de destino de la misma manera que clonas cualquier otro proyecto:

 git clone git@github.com:myuser/foo.git 

Luego instálalo en modo de desarrollo:

 cd foo pip install -e . 

Puedes cambiar cualquier cosa que no quieras y cada código que use el paquete foo usará el código modificado.

Hay 2 beneficios de esta solución:

  1. Puede instalar el paquete en su directorio de proyectos de inicio.
  2. El paquete incluye .git dir, por lo que es un repository regular de Git. Puede empujar a su tenedor de inmediato.