Pip не удается установить пакеты из требования .txt - программирование
Подтвердить что ты не робот

Pip не удается установить пакеты из требования .txt

Я пытаюсь установить программное обеспечение python с помощью файла требований.

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

Итак, я создаю виртуальную среду

>> mkvirtualenv parser

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

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

... а затем я загружаю пакеты, но не установлен с ошибками: http://pastie.org/4079800

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

Удивительно, но если я пытаюсь вручную установить каждый пакет, они устанавливаются просто отлично. Например:

>> pip install numpy==1.6.1

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

Я потерялся. Что происходит?

PS: Я использую pip v1.1 и python v2.7.2 с virtualenv и virtualenvwrapper

4b9b3361

Ответ 1

Похоже, что пакет numexpr имеет зависимость времени установки от numpy. Пип выполняет два прохода в соответствии с вашими требованиями: сначала он загружает все пакеты и запускает каждый setup.py для получения своих метаданных, а затем устанавливает их все за второй проход.

Итак, numexpr пытается импортировать из numpy в свой setup.py, но когда pip сначала запускает numexpr setup.py, он еще не установил numpy.

Вот почему вы не видите эту ошибку при установке пакетов один за другим: если вы устанавливаете их по одному, то numpy будет полностью установлен в вашей среде до вас pip install numexpr.

Единственное решение - установить pip install numpy, прежде чем вы запустите pip install -r requirements.txt - вы не сможете сделать это в одной команде с единственным файлом требований .txt.

Дополнительная информация здесь: https://github.com/pypa/pip/issues/25