Pregunta ¿Cómo instalar paquetes usando pip según el archivo requirements.txt de un directorio local?


Aquí está el problema

Tengo un requirements.txt que se ve así:

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 archivo 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 los requisitos .txt del directorio local de archivos.

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

Obtuve 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 verificación reveló que ninguno del paquete 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?


686
2017-08-29 03:53


origen


Respuestas:


Esto funciona para mí:

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

--no-index - Ignorar el índice del paquete (solo mirando --find-links URL en su lugar).

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


425
2018-05-03 10:04



He leído lo anterior, me doy cuenta de que esta es una vieja pregunta, pero está totalmente sin resolver y sigue 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

990
2018-03-24 00:47



Para virtualenv, instalar todos los archivos en el archivo requirements.txt.

  1. cd al directorio donde se encuentra requirements.txt
  2. activa tu virtualenv
  3. correr: pip install -r requirements.txt  en tu caparazón

101
2018-02-26 15:38



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 perdieron.

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 podría ayudarte.


44
2018-01-23 22:08



pip install -r requirements.txt

Para más detalles, consulte 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 puede ser                                 usado varias veces

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

enter image description here

Además, lo anterior es el conjunto completo de opciones. Utilice pip install --help para obtener una lista completa de opciones.


21
2017-09-16 17:23



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

Primero, descargue los archivos que cumplen con sus requisitos:

$ pip install --download <DIR> -r requirements.txt

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

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

13
2017-09-22 06:27



Trabajo con muchos sistemas que los desarrolladores "han seguido las instrucciones que encontraron en Internet". Es extremadamente común que pip y tu python no están mirando las mismas rutas / paquetes de sitio. Por esta razón, cuando encuentro la rareza empiezo 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)

Eso es un feliz sistema.

A continuación hay un sistema infeliz. (O al menos es un sistema dichosamente ignorante que causa que otros sean 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

Es infeliz porque pip es (python3.6 y) usando /usr/local/lib/python3.6/site-packages mientras python es (python2.7 y) usando /usr/local/lib/python2.7/site-packages

Cuando quiero asegurarme de que estoy instalando requisitos para el derecho Python, 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 intentes arreglarlo". La versión de DevOps de eso es: "Si no lo rompiste y puedes evitarlo, no intentes solucionarlo".


10
2018-03-23 16:49



Instalación del archivo requirements.txt dentro de env virtual con python 3:

Tuve el mismo problema. Intentaba 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 ambiente usando:

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.


1
2017-11-10 08:05