4

我有一个与 virtualenv 一起使用的 pip 需求文件,以自动获取我的应用程序的依赖项。

该应用程序同时依赖于 NumPy 和 SciPy,因此我的 pip 需求文件包括:

numpy==1.5.0
scipy==0.8.0

但是,在新的 virtualenv 中运行此 pip 时,安装失败并出现以下错误:

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

2 回答 2

4

我不认为你可以。Pip 和 setuptools 不是标准工具——我们试图在善意的基础上支持它们,但它很脆弱。特别是,因为 scipy setup.py 需要 numpy 才能运行,所以它不能使用 install_requires 参数。

于 2010-11-12T06:38:10.390 回答
1

我刚刚遇到了完全相同的问题!幸运的是,最新的 pip 开发版本按照它们在需求文件中列出的顺序安装包。

我用这个命令更新了(它需要Mercurial,因为 pip 托管在Bitbucket上):

pip install hg+https://bitbucket.org/ianb/pip
于 2011-01-18T10:09:35.653 回答