He instalado una biblioteca usando el comando
pip install git+git://github.com/mozilla/elasticutils.git
que lo instala directamente desde un repositorio de Github. Esto funciona bien y quiero tener esa dependencia en mi requirements.txt
. He visto otras entradas como esta, pero eso no resolvió mi problema. Si pongo algo como
-f git+git://github.com/mozilla/elasticutils.git
elasticutils==0.7.dev
en el requirements.txt
archivo, un pip install -r requirements.txt
resultado en la siguiente salida:
Downloading/unpacking elasticutils==0.7.dev (from -r requirements.txt (line 20))
Could not find a version that satisfies the requirement elasticutils==0.7.dev (from -r requirements.txt (line 20)) (from versions: )
No distributions matching the version for elasticutils==0.7.dev (from -r requirements.txt (line 20))
La documentación del archivo de requisitos no menciona los enlaces que utilizangit+git
especificador de protocolo, por lo que quizás esto simplemente no sea compatible.
¿Alguien tiene una solución para mi problema?
git+git
variante (que funcionó). Enrequirements.txt
su versión funciona, así que muchas gracias :)docs
enlace no estaba funcionando para mí; He usado uno más viejo .-e git+git://
lugar de-e git://
? Recibí un mensaje de error "debería ser una ruta a un proyecto local o una URL de VCS que comience con svn +, git +, hg + o bzr +" .Normalmente su
requirements.txt
archivo se vería así:Para especificar un repositorio de Github, no necesita la
package-name==
convención.Los siguientes ejemplos se actualizan
package-two
utilizando un repositorio de GitHub. El texto entre@
y#
denota los detalles del paquete.Especifique hash de confirmación (
41b95ec
en el contexto de actualizadorequirements.txt
):Especifique el nombre de la sucursal (
master
):Especificar etiqueta (
0.1
):Especifique release (
3.7.1
):Tenga en cuenta que
#egg=package-two
no es un comentario aquí, es indicar explícitamente el nombre del paqueteEsta publicación de blog tiene más discusión sobre el tema.
fuente
-e
opciones de línea de comandos ( ). ¡Gracias por mostrar una combinación de ambos para poder poner esto en contexto!3.7.1
congit+git://github.com/path/to/package-two@releases/tag/v3.7.1#egg=package-two
no funcionó para mí. Lo que funcionó para mí fuegit+git://github.com/path/to/[email protected]#egg=package-two
.git+git://...
notación de alguna manera causó errores relativos a ssh en mi caja de Linux. Así que terminé cambiándolos agit+https://...
notación y luego funcionan perfectamente.requirements.txt
permite las siguientes formas de especificar una dependencia en un paquete en un repositorio git a partir de pip 7.0: 1Para Github eso significa que puede hacer (observe lo omitido
-e
):¿Por qué la respuesta extra?
Me confundí un poco por el
-e
bandera de las otras respuestas así que aquí está mi aclaración:La bandera
-e
o--editable
significa que el paquete está instalado<venv path>/src/SomeProject
y, por lo tanto, no está profundamente enterrado<venv path>/lib/pythonX.X/site-packages/SomeProject
, de lo contrario se colocaría. 2Documentación
fuente
-e
siguiente, espip freeze
posible que no proporcione los resultados correctos para este paquetePrimero, instale con
git+git
ogit+https
, de cualquier manera que sepa. Ejemplo de instalaciónkronok
de la rama delbrabeion
proyecto:En segundo lugar, utilice
pip freeze > requirements.txt
para obtener lo correcto en surequirements.txt
. En este caso, obtendrásTercero, pruebe el resultado:
fuente
no such option: -e
git+https
? En el texto que dicesgit+git
y en el códigogit+https
Desde pip
v1.5
, (lanzado el 1 de enero de 2014: CHANGELOG , PR ), también puede especificar un subdirectorio de un repositorio git para contener su módulo. La sintaxis se ve así:Nota: Como autor de un módulo pip, lo ideal es que probablemente desee publicar su módulo en su propio repositorio de nivel superior si puede. Sin embargo, esta característica es útil para algunos repositorios preexistentes que contienen módulos de Python en subdirectorios. Es posible que se vea obligado a instalarlos de esta manera si tampoco se publican en pypi.
fuente
Estoy descubriendo que es un poco complicado obtener pip3 (v9.0.1, como lo instaló el administrador de paquetes de Ubuntu 18.04) para instalar realmente lo que le digo que instale. Estoy publicando esta respuesta para ahorrar tiempo a cualquiera que se encuentre con este problema.
No se pudo poner esto en un archivo require.txt:
Por "fallido" quiero decir que si bien descargó el código de Git, terminó instalando la versión original del código, como se encuentra en PyPi, en lugar del código en el repositorio de esa rama.
Sin embargo, instalar el commmit en lugar del nombre de la sucursal funciona:
fuente