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.txtarchivo, un pip install -r requirements.txtresultado 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+gitvariante (que funcionó). Enrequirements.txtsu versión funciona, así que muchas gracias :)docsenlace 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.txtarchivo se vería así:Para especificar un repositorio de Github, no necesita la
package-name==convención.Los siguientes ejemplos se actualizan
package-twoutilizando un repositorio de GitHub. El texto entre@y#denota los detalles del paquete.Especifique hash de confirmación (
41b95ecen 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-twono 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
-eopciones de línea de comandos ( ). ¡Gracias por mostrar una combinación de ambos para poder poner esto en contexto!3.7.1congit+git://github.com/path/to/package-two@releases/tag/v3.7.1#egg=package-twono 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.txtpermite 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
-ebandera de las otras respuestas así que aquí está mi aclaración:La bandera
-eo--editablesignifica que el paquete está instalado<venv path>/src/SomeProjecty, por lo tanto, no está profundamente enterrado<venv path>/lib/pythonX.X/site-packages/SomeProject, de lo contrario se colocaría. 2Documentación
fuente
-esiguiente, espip freezeposible que no proporcione los resultados correctos para este paquetePrimero, instale con
git+gitogit+https, de cualquier manera que sepa. Ejemplo de instalaciónkronokde la rama delbrabeionproyecto:En segundo lugar, utilice
pip freeze > requirements.txtpara obtener lo correcto en surequirements.txt. En este caso, obtendrásTercero, pruebe el resultado:
fuente
no such option: -egit+https? En el texto que dicesgit+gity en el códigogit+httpsDesde 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