¿Cómo instalar paquetes con pip según el archivo requirements.txt desde un directorio local?

Este es el problema

Tengo un requirements.txt que parece:

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, he intentado instalar los paquetes según requirements.txt desde el directorio local del archivo.

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

Obtuve una salida que parece 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 la comprobación posterior 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. ¿Qué es lo que ha fallado?

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

pip install -r /path/to/requirements.txt
Comentarios (6)
Solución

Esto funciona para mí:

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

--no-index - Ignora el índice del paquete (sólo mira las URLs --find-links en su lugar).

-f, --find-links - Si se trata de una URL o una ruta a un archivo html, entonces se analizan los enlaces a los archivos. Si es una ruta local o una URL file:// que es un directorio, entonces busca archivos en el listado de directorios.

Comentarios (6)

Para que virtualenv instale todos los archivos del archivo requirements.txt.

  1. cd al directorio donde se encuentra requirements.txt
  2. active su virtualenv
  3. ejecute: pip install -r requirements.txt en su shell
Comentarios (1)