İşte sorunumuz
Şuna benzeyen bir requirements.txt dosyam var:
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
...
Tüm paketleri ve diğerlerini içeren yerel bir arşiv dizinim var.
ile yeni bir virtualenv oluşturdum
bin/virtualenv testing
Etkinleştirdikten sonra, yerel arşiv dizininden requirements.txt'ye göre paketleri yüklemeye çalıştım.
source bin/activate
pip install -r /path/to/requirements.txt -f file:///path/to/archive/
Kurulumun iyi olduğunu gösteren bazı çıktılar aldım
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
....
Ancak daha sonra yapılan kontrolde paketlerin hiçbirinin düzgün yüklenmediği görüldü. Paketi içe aktaramıyorum ve virtualenv'imin site-packages dizininde hiçbiri bulunmuyor. Peki ne yanlış gitti?
Yukarıdakileri okudum, bunun eski bir soru olduğunun farkındayım, ancak tamamen çözülmemiş ve hala google arama sonuçlarımın en üstünde yer alıyor, bu yüzden işte herkes için işe yarayan bir cevap:
pip install -r /path/to/requirements.txt
Bu bende işe yarıyor:
$ pip install -r requirements.txt --no-index --find-links file:///tmp/packages
--no-index
- Paket dizinini yoksay (bunun yerine yalnızca --find-links
URL'lerine bak).
-f, --find-links <URL>
- Bir URL veya html dosyasına giden yol ise, arşivlere giden bağlantılar için ayrıştırma yapar.
Yerel bir yol veya bir dizin olan file://
URL'si ise, dizin listesinde arşivleri arayın.
virtualenv'nin requirements.txt dosyasındaki tüm dosyaları yüklemesi için.
pip install -r requirements.txt
komutunu çalıştırın