¿Cómo instalar paquetes usando pip de acuerdo con el archivo Requirements.txt de un directorio local?

Aquí está el problema

Tengo un requisito.txt que se parece a:

BeautifulSoup==3.2.0 Django==1.3 Fabric==1.2.0 Jinja2==2.5.5 PyYAML==3.09 Pygments==1.4 SQLAlchemy==0.7.1 South==0.7.3 amqplib==0.6.1 anyjson==0.3 ... 

Tengo un directorio de archivos local que contiene todos los paquetes + otros.

He creado un nuevo virtualenv con

 bin/virtualenv testing 

al activarlo, traté de instalar los paquetes de acuerdo con Requirements.txt del directorio de archivo local.

 source bin/activate pip install -r /path/to/requirements.txt -f file:///path/to/archive/ 

Tengo algunos resultados que parecen indicar que la instalación está bien.

 Downloading/unpacking Fabric==1.2.0 (from -r ../testing/requirements.txt (line 3)) Running setup.py egg_info for package Fabric warning: no previously-included files matching '*' found under directory 'docs/_build' warning: no files found matching 'fabfile.py' Downloading/unpacking South==0.7.3 (from -r ../testing/requirements.txt (line 8)) Running setup.py egg_info for package South .... 

Pero luego la revisión reveló que ninguno de los paquetes está instalado correctamente. No puedo importar el paquete y no se encuentra ninguno en el directorio site-packages de mi virtualenv. Entonces, ¿qué salió mal?

Esto funciona para mí:

 $ pip install -r requirements.txt --no-index --find-links file:///tmp/packages 

--no-index – Ignora el índice del paquete (solo mirando las URL de --find-links lugar).

-f, --find-links – Si es una URL o una ruta a un archivo html, analice los enlaces a los archivos. Si hay una ruta o file:// local file:// URL que es un directorio, busque archivos en la lista del directorio.

He leído lo anterior, me doy cuenta de que esta es una pregunta antigua, pero no está resuelta y aún está en la parte superior de mis resultados de búsqueda de Google, así que aquí hay una respuesta que funciona para todos:

 pip install -r /path/to/requirements.txt 

Para que virtualenv instale todos los archivos en el archivo Requirements.txt.

  1. cd al directorio donde se encuentra el archivo Requirements.txt
  2. activa tu virtualenv
  3. ejecute: pip install -r requirements.txt en su shell

Tuve un problema similar. Intenté esto:

 pip install -U -r requirements.txt 

(-U = actualizar si ya se había instalado)

Pero el problema continuó. Me di cuenta de que algunas de las bibliotecas genéricas para el desarrollo se perdían.

 sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk 

No sé si esto te ayudaría.

 pip install -r requirements.txt 

Para más detalles por favor verifica la opción de ayuda.

 pip install --help 

Podemos encontrar la opción ‘-r’

-r, –requirement Instalar desde el archivo de requisitos dado. Esta opción se puede utilizar varias veces.

Más información sobre algunas opciones de instalación de pip usadas comúnmente: (Esta es la opción de ayuda en el comando pip install)

introduzca la descripción de la imagen aquí

También lo anterior es el conjunto completo de opciones. Utilice pip install –help para obtener una lista completa de opciones.

A menudo, deseará una instalación rápida desde archivos locales, sin probar el PyPI.

Primero, descargue los archivos que cumplan con sus requisitos:

 $ pip install --download  -r requirements.txt 

Luego, instale usando –find-links y –no-index :

 $ pip install --no-index --find-links=[file://] -r requirements.txt 

Trabajo con una gran cantidad de sistemas que han sido desechados por los desarrolladores “siguiendo las instrucciones que encontraron en Internet”. Es extremadamente común que tu pip y tu python no estén buscando las mismas rutas / paquetes de sitios. Por esta razón, cuando encuentro una rareza, comienzo haciendo esto:

 $ python -c 'import sys; print(sys.path)' ['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages'] $ pip --version pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7) 

Ese es un sistema feliz .

A continuación se muestra un sistema infeliz . (O al menos es un sistema felizmente ignorante que hace que otros se sientan infelices).

 $ pip --version pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6) $ python -c 'import sys; print(sys.path)' ['', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages'] $ which pip pip2 pip3 /usr/local/bin/pip /usr/local/bin/pip3 

No está contento porque pip está (python3.6 y) usando /usr/local/lib/python3.6/site-packages mientras que python está (python2.7 y) usando /usr/local/lib/python2.7/site-packages

Cuando quiero asegurarme de que estoy instalando los requisitos en la python correcta , hago esto:

 $ which -a python python2 python3 /usr/local/bin/python /usr/bin/python /usr/local/bin/python2 /usr/local/bin/python3 $ /usr/bin/python -m pip install -r requirements.txt 

Has escuchado: “Si no está roto, no trates de arreglarlo”. La versión de DevOps de eso es: “Si no lo rompió y puede solucionarlo, no intente arreglarlo”.

 pip install -r /path/to/requirements.txt 

Aquí, -r es una forma corta de --requirement y le pide al pip que instale desde el archivo de requirements dado.

pip comenzará la instalación solo después de verificar la disponibilidad de todos los elementos enumerados en el archivo de requirements y no comenzará la instalación incluso si un requirement no está disponible.

Una solución para instalar los paquetes disponibles es instalar los paquetes listados uno por uno. Utilice el siguiente comando para eso. Se mostrará una advertencia de color rojo para notificarle sobre los paquetes no disponibles.

 cat requirements.txt | xargs -n 1 pip install 

Para ignorar los comentarios (líneas que comienzan con un # ) y líneas en blanco, use:

 cat requirements.txt | cut -f1 -d"#" | sed '/^\s*$/d' | xargs -n 1 pip install 

Instalando el archivo Requirements.txt dentro de env virtual con python 3:

Tuve el mismo problema. Estaba tratando de instalar el archivo Requirements.txt dentro de un entorno virtual. Encontré la solución.

Inicialmente, creé mi env virtual de esta manera:

 virtualenv -p python3 myenv 

Activa el entorno utilizando:

 source myenv/bin/activate 

Ahora instalé el Requirements.txt usando:

 pip3 install -r requirements.txt 

La instalación fue exitosa y pude importar los módulos.

prueba esto

 python -m pip install -r requirements.txt