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 se refiere a lo que debe estar en el repositorio de github para que la instalación sea exitosa.

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

pip install git+ssh://[email protected]/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, or es el tar real.archivo gz, o algo más?

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

 185
Author: ccgillett, 2011-11-23

4 answers

Necesita todo el paquete 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 instalar 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

 245
Author: Hugo Tavares,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-23 09:55:24

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

La forma sencilla de hacerlo es usando el archivo zip del paquete. Añadir /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 manera harás que pip funcione con los repositorios de código fuente de github.

 101
Author: Dmitry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-28 14:52:29

Si desea usar el archivo requirements.txt, necesitará git y algo como la entrada de abajo para obtener anónimamente la rama maestra en su requirements.txt.

Para la instalación regular:

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

Para "editable" instalar:

-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 pip freeze muestre la ubicación correcta del paquete en github.

 20
Author: wieczorek1990,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-12 16:24:01

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

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

Luego instálalo en modo de desarrollo:

cd foo
pip install -e .

Puede cambiar cualquier cosa que no desee 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 su directorio home projects.
  2. El paquete incluye .git dir, por lo que es un repositorio Git normal. Usted puede empujar a su tenedor de inmediato.
 10
Author: avalanchy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-01 09:16:16