python git pip

python - Configurando para que la instalación de pip pueda funcionar desde github



pip python (4)

Nos gustaría usar pip con github para instalar paquetes privados en nuestros servidores de producción. Esta pregunta se refiere a lo que debe estar en el repositorio github para que la instalación sea exitosa.

Asumiendo la siguiente línea de comando (que se autentica muy bien e intenta instalar):

pip install git+ssh://[email protected]/BlahCo/search/tree/prod_release_branch/ProductName

¿Qué debe residir en 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?

Pregunto aquí porque he intentado varias variaciones y no puedo hacer que funcione. Cualquier ayuda apreciada.


Clona el repositorio de destino de la misma manera que si clonaras cualquier otro proyecto:

git clone [email protected]:myuser/foo.git

Luego instálelo en modo de desarrollo:

cd foo pip install -e .

Puedes cambiar todo lo que quieras y cada código que use el paquete foo usará código modificado.

Hay 2 beneficios de esta solución:

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

Necesita el paquete completo de python, 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


Si desea usar el archivo requirements.txt , necesitará git y algo así como la entrada siguiente para buscar de forma anónima la rama principal en su requirements.txt .

Para una 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 emita la ubicación github correcta del paquete.


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

La forma más simple de hacerlo es usando el archivo zip del paquete. Agregue /zipball/master a la URL del repositorio:

$ 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 forma, harás que pip funcione con los repositorios de Github.