【问题标题】:Freeze of pip requirements, NumPy and SciPy on OS X在 OS X 上冻结 pip 要求、NumPy 和 SciPy
【发布时间】:2011-05-08 12:57:17
【问题描述】:

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

该应用程序同时依赖于 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 没有按任何特定顺序安装,我该如何解决此问题?

【问题讨论】:

    标签: python numpy scipy virtualenv pip


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 啊,我说得太早了。虽然 pip 的开发版本以正确的顺序下载和构建包 scipy 的构建步骤需要首先安装 numpy(而不仅仅是构建)所以这不能解决问题。不过,这是朝着正确方向迈出的一步!
      猜你喜欢
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      • 2012-08-19
      相关资源
      最近更新 更多