2012-03-21 15 views
10

Estamos utilizando un archivo requirements.txt para almacenar todos los módulos externos necesarios. Cada módulo, excepto uno, se obtiene de Internet. El otro se almacena en una carpeta debajo del que contiene el archivo requirements.txt.utiliza una ruta relativa en requirements.txt para instalar un archivo tar.gz con pip

Por cierto, este módulo puede ser fácilmente instalado con pip instalar

He intentado usar esto:

file:folder/module 

o esto:

file:./folder/module 

o incluso esto:

folder/module 

pero siempre tira yo un error ¿Alguien sabe cuál es la forma correcta de hacerlo?

Gracias

Respuesta

16

En la versión actual del PIP (1.2.1) la forma en rutas relativas en un archivo son interpretadas es ambigua y semi-rotos. Hay un tema abierto en el repositorio de pepita que explica los diversos problemas y ambigüedades en mayor detalle:

https://github.com/pypa/pip/issues/328

Para resumir la implementación actual no coincide con la descripción en la documentación de pepita, así como de este escrito no hay una manera consistente y confiable de usar rutas relativas en requirements.txt.

Dicho esto, colocando lo siguiente en mi requirements.txt:

./foo/bar/mymodule 

funciona cuando hay un setup.py en el nivel superior del directorio mymodule. Tenga en cuenta la falta de la designación del protocolo file:: y la inclusión de la ./ líder. Esta ruta no es relativa al archivo requirements.txt, sino al directorio de trabajo actual. Por eso es necesario para navegar en el mismo directorio que el requirements.txt y ejecute el comando:.

pip install -r requirements.txt 
+3

a pesar de que '/' parece que funciona de esta manera '' ../ no lo hace, ni siquiera en relación con la caquexia crónica, y lo intenté tampoco './../' – dashesy

Cuestiones relacionadas