2010-11-11 1 views
4

У меня есть файл требований к требованиям, который я использую с virtualenv, чтобы автоматически захватывать зависимости для моего приложения.Замораживание требований к пинам, NumPy и SciPy на OS X

Применение зависит как NumPy и SciPy и как таковой мой файл требований пипа включает в себя:

numpy==1.5.0 
scipy==0.8.0 

Однако при выполнении этого пипа в новом virtualenv, происходит сбой установки со следующей ошибкой:

File "/Users/x/virtualenv/deploy/src/scipy/setup.py", line 58, in svn_version 
    from numpy.compat import asstr 
ImportError: No module named numpy.compat 
Complete output from command python setup.py egg_info: 
Traceback (most recent call last): 

Это происходит потому, что SciPy требует установки NumPy до его сборки. Поэтому, если я удалю SciPy, а затем вручную добавлю SciPy после этого (pip install scipy), он будет работать.

Как я могу решить эту проблему, учитывая, что pip не устанавливается в каком-либо конкретном порядке?

ответ

4

Я не думаю, что вы можете. Pip и setuptools не являются стандартными инструментами - мы стараемся поддерживать их на добровольной основе, но они хрупки. В частности, поскольку scipy setup.py требует numpy для запуска, он не может работать с использованием аргумента install_requires.

1

Я просто столкнулся с той же проблемой! К счастью, последняя версия версии pip устанавливает пакеты в том же порядке, что и в файле требований.

Я обновил с этой командой (требуется Mercurial поскольку пип размещается на Bitbucket):

pip install hg+https://bitbucket.org/ianb/pip 
+1

А я говорил слишком рано. В то время как dev-версия pip загружает и создает пакеты в правильном порядке сборки scipy, нужно сначала установить numpy (не просто встроенный), чтобы это не устранило проблему. Это шаг в правильном направлении! –