Tu jest problem
Mam wymagania.txt, które wyglądają tak:
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
...
Mam lokalny katalog archiwum zawierający wszystkie pakiety + inne.
Stworzyłem nowy virtualenv z
bin/virtualenv testing
po aktywowaniu go, próbowałem zainstalować pakiety zgodnie z wymaganiami.txt z lokalnego katalogu archiwum.
source bin/activate
pip install -r /path/to/requirements.txt -f file:///path/to/archive/
Otrzymałem pewne dane wyjściowe, które wydają się wskazywać, że instalacja jest w porządku
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
....
Ale późniejsze sprawdzenie ujawniło, że żaden z pakietów nie jest zainstalowany poprawnie. Nie mogę zaimportować pakietu, a żaden nie został znaleziony w katalogu site-packages w moim virtualenv. Więc co poszło nie tak?
I've przeczytać powyżej, zdają sobie sprawę, że jest to stare pytanie, ale to's całkowicie nierozwiązane i nadal na szczycie moich wyników wyszukiwania google, więc tutaj's odpowiedź, która działa dla wszystkich:
pip install -r /path/to/requirements.txt
To działa dla mnie:
$ pip install -r requirements.txt --no-index --find-links file:///tmp/packages
--no-index
- Ignoruje indeks pakietów (tylko patrząc na adresy URL --find-links
zamiast).
-f, --find-links <URL>
- Jeśli URL lub ścieżka do pliku html, to parsowanie w poszukiwaniu linków do archiwów.
Jeśli lokalna ścieżka lub file://
URL, który'jest katalogiem, to szukaj archiwów w spisie katalogów.