2012-06-13 15 views
16

Próbuję zainstalować oprogramowanie Pythona przy użyciu pliku wymagań.PIP nie instaluje pakietów z pliku require.txt

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

Więc stworzenie środowiska wirtualnego

>> mkvirtualenv parser 

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

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

... a potem pakiety Pobrałem ale nie jest zainstalowane z błędami: http://pastie.org/4079800

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

Niespodziewanie, gdy próbuję zainstalować ręcznie każdy pakiet, instalują się dobrze. Na przykład:

>> pip install numpy==1.6.1 

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

jestem zgubiony. Co się dzieje?

PS: Używam pip v1.1 i python v2.7.2 z virtualenv i virtualenvwrapper

Odpowiedz

15

to wygląda opakowanie numexpr ma install-czas zależność numpy. Pip wykonuje dwa przejścia przez twoje wymagania: najpierw pobiera wszystkie pakiety i uruchamia każdy z nich setup.py, aby uzyskać jego metadane, a następnie instaluje je wszystkie w drugim przebiegu.

Tak więc, numexpr próbuje zaimportować z numpy w swoim setup.py, ale kiedy pip najpierw uruchamia setup.py użytkownika numexpr, to jeszcze nie zainstalował numpy.

To jest powód, dla którego nie widzisz tego błędu podczas instalowania pakietów jeden po drugim: jeśli instalujesz je pojedynczo, numpy będzie w pełni zainstalowany w twoim środowisku przed pip install numexpr.

Jedynym rozwiązaniem jest zainstalowanie pip install numpy przed uruchomieniem pip install -r requirements.txt - nie będzie można tego zrobić za pomocą pojedynczego polecenia z pojedynczym plikiem requirements.txt.

Więcej informacji tutaj: https://github.com/pypa/pip/issues/25

+2

To wygląda jak błąd opakowań w numexpr; jego plik setup.py powinien zostać zmodyfikowany tak, aby importował tylko z numpy, jeśli faktycznie go tworzysz, np. przez przechwycenie 'ImportError' i kontynuowanie bez' extra_setup_opts', jeśli właśnie uruchamiasz 'setup.py egg_info'. – ejucovy

+3

My (pip) powinniśmy mieć przewodnik na ten temat lub przynajmniej link do istniejących dokumentów. –

+2

Powinieneś [zgłosić problem] (http://code.google.com/p/numexpr/issues/entry) za pomocą numexpr – jterrace

Powiązane problemy