2012-06-13 28 views
16

Gereksinim dosyasını kullanarak bir python yazılımı yüklemeye çalışıyorum. pip, gereksinimlerden paketler yüklemek için başarısız oluyor.

>> cat requirements.txt 
Cython==0.15.1 
numpy==1.6.1 
distribute==0.6.24 
logilab-astng==0.23.1logilab-common==0.57.1 
netaddr==0.7.6 
numexpr==2.0.1 
ply==2.5 
pycallgraph==0.5.1 
pyflowtools==0.3.4.1 
pylint==0.25.1 
tables==2.3.1 
wsgiref==0.1.2 

Bu yüzden bir sanal ortam

>> mkvirtualenv parser 

(parser) 
>> pip freeze 
distribute==0.6.24 
wsgiref==0.1.2 

(parser) 
>> pip install -r requirements.txt 

oluşturmak ... ve sonra paketler indirilen ancak hataları ile yüklü değil: http://pastie.org/4079800

(parser) 
>> pip freeze 
distribute==0.6.24 
wsgiref==0.1.2 

Hayret, ben manuel yüklemeye çalıştığınızda Her paket, sadece iyi kurarlar. Mesela : Kayboldum

>> pip install numpy==1.6.1 

(parser) 
>> pip freeze 
distribute==0.6.24 
wsgiref==0.1.2 
numpy==1.6.1 

. Ne oluyor?

PS: Ben pip v1.1 ve virtualenv ile python v2.7.2 ve virtualenvwrapper

cevap

15

numexpr paket Numpy üzerinde bir yükleme zamanı bağımlılığı gibi görünüyor kullanıyorum. Pip, gereksinimlerinize göre iki geçiş yapar: ilk önce tüm paketleri indirir ve meta verilerini almak için her birinin setup.py'u çalıştırır ve ardından hepsini bir ikinci geçişte yükler.

Bu nedenle, numexpr, setup.py dosyasındaki numpy'den içe aktarmaya çalışıyor ancak pip ilk olarak numexpr'ın setup.py dosyasını çalıştırdığında, henüz numpy yüklemedi.

Ayrıca, bu hatayı tek tek yüklediğinizde de bu hatayı görmemeniz de söz konusudur: Bunları birer birer yüklerseniz, numpy, ortamınıza pip install numexpr'den önce tam olarak yüklenecektir.

Tek çözüm, pip install -r requirements.txt'u çalıştırmadan önce pip install numpy'u yüklemektir - bunu tek bir komut dosyasıyla tek bir komutta yapamazsınız.

burada

diğer bilgiler: Bu numexpr bir ambalaj hatası gibi görünen https://github.com/pypa/pip/issues/25

+2

; setup.py, aslında oluşturuyorsanız numpy'den içe aktarılacak şekilde değiştirilmelidir, ör. 'ImportError' yakalayarak ve 'setup.py egg_info' çalıştırıyorsanız extra_setup_opts 'olmadan devam edin. – ejucovy

+3

Biz (pip) muhtemelen bu konuda bir rehber olmalı veya en azından mevcut dokümanlar ile bağlantı kurmalıyız. –

+2

Numexpr ile [bir sorun var] (http://code.google.com/p/numexpr/issues/entry) yapmalısınız – jterrace