Wie installiert man Pakete mit pip gemäß der Datei requirements.txt aus einem lokalen Verzeichnis?

Hier ist das Problem

Ich habe eine requirements.txt, die wie folgt aussieht:

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

Ich habe ein lokales Archivverzeichnis, das alle Pakete und andere enthält.

Ich habe eine neue Virtualenv mit

bin/virtualenv testing

nach der Aktivierung habe ich versucht, die Pakete gemäß requirements.txt aus dem lokalen Archivverzeichnis zu installieren.

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

Ich habe eine Ausgabe erhalten, die darauf hinzuweisen scheint, dass die Installation in Ordnung ist

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

Eine spätere Überprüfung ergab jedoch, dass keines der Pakete ordnungsgemäß installiert ist. Ich kann das Paket nicht importieren, und im Verzeichnis site-packages meiner virtualenv ist keines zu finden. Was ist also schief gelaufen?

Ich habe den obigen Text gelesen und weiß, dass dies eine alte Frage ist, aber sie ist völlig ungelöst und steht immer noch ganz oben in meinen Google-Suchergebnissen, also hier eine Antwort, die für alle gilt:

pip install -r /path/to/requirements.txt
Kommentare (6)
Lösung

Das funktioniert bei mir:

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

--no-index - Paketindex ignorieren (stattdessen nur --find-links URLs betrachten).

-f, --find-links - Wenn eine URL oder ein Pfad zu einer HTML-Datei, dann wird nach Links zu Archiven gesucht. Wenn es sich um einen lokalen Pfad oder eine file:// URL handelt, die ein Verzeichnis ist, dann wird nach Archiven in der Verzeichnisliste gesucht.

Kommentare (6)

Damit virtualenv alle Dateien in der Datei requirements.txt installiert.

  1. Wechseln Sie in das Verzeichnis, in dem sich die Datei requirements.txt befindet.
  2. Aktivieren Sie Ihr virtualenv
  3. Führen Sie aus: pip install -r requirements.txt in Ihrer Shell
Kommentare (1)