from - use requirements txt python
¿Cómo instalar paquetes usando pip de acuerdo con el archivo Requirements.txt de un directorio local? (8)
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 verificació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?
A menudo, deseará una instalación rápida desde archivos locales, sin sondear PyPI.
Primero, descargue los archivos que cumplan 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
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 <URL> - Si es una URL o una ruta a un archivo html, analice los enlaces a los archivos. Si una ruta o file:// local file:// URL es un directorio, busque los 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.
- Cd al directorio donde se encuentra el archivo Requirements.txt.
- activa tu virtualenv
- ejecute:
pip install -r requirements.txten su shell
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) utilizando los paquetes /usr/local/lib/python3.6/site-packages mientras que python está (python2.7 y) utilizando /usr/local/lib/python2.7/site-packages
Cuando quiero asegurarme de que estoy instalando los requisitos en la pitón 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".
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.
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.
pip install -r requirements.txt
Para más detalles por favor revise 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)
También lo anterior es el conjunto completo de opciones. Utilice pip install --help para obtener una lista completa de opciones.