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:
- Puede instalar el paquete en el directorio de proyectos de su casa.
- 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.