【问题标题】:error: command 'gcc' failed with exit status 1 installing Fatiando (Python Package)错误:命令“gcc”失败,退出状态为 1,安装 Fiando(Python 包)
【发布时间】:2015-03-15 02:09:18
【问题描述】:

我正在尝试安装 fatiando,一个用于 Python 的地球物理建模包。 我有一台装有 OS X v10.9.5 的 Mac。通过遵循package site 上建议的推荐安装,我获得了 Fiando 的所有依赖项(通过 Anaconda)。我已经安装了 Xcode。

我收到警告列表和最终错误消息:

    fatiando/gravmag/_polyprism.c:349:10: fatal error: 'omp.h' file not found

    #include "omp.h"

             ^

    1 warning and 1 error generated.

    error: command 'gcc' failed with exit status 1

    ----------------------------------------
    Command "//anaconda/bin/python -c "import setuptools, tokenize;__file__='/var/folders/32/mwq0jhwd3dx7vjqmm8hkljp80000gn/T/pip-QFjo6d-build/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/32/mwq0jhwd3dx7vjqmm8hkljp80000gn/T/pip-CY4vyX-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /var/folders/32/mwq0jhwd3dx7vjqmm8hkljp80000gn/T/pip-QFjo6d-build
Macintosh-5:fatiando matteoniccoli$ 

可以在here 找到完整的终端输出(1100 多行)。

我已经联系了开发者,这似乎不是 Fiando 的问题。

有什么建议吗?

更新,3 月 15 日

当我第一次发布这个时,我没有 Xcode,然后我从 Apple 商店下载了最新的 Xcode。再次尝试,得到相同的消息。然后我看了this,从here下载了gcc,直接安装了。当我在终端上输入:gcc --version 时,我得到:i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00) 不过,在那之后,我仍然收到类似的消息。在另一个stackoverflow领导之后,我尝试从here安装setuptools 使用 curl https://bootstrap.pypa.io/ez_setup.py -o - | Python 现在,当我尝试安装 fatiando 时,我得到了一个不同的错误(在长输出的末尾):

fatiando/gravmag/_polyprism.c:349:10: fatal error: 'omp.h' file not found

    #include "omp.h"

             ^  

    1 warning and 1 error generated.  

    error: command '/usr/bin/clang' failed with exit status 1

    ----------------------------------------

    Command "//anaconda/bin/python -c "import setuptools, tokenize;__file__='/private/var/folders/32/mwq0jhwd3dx7vjqmm8hkljp80000gn/T/pip-build-m1ieVO/fatiando/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/32/mwq0jhwd3dx7vjqmm8hkljp80000gn/T/pip-9wI6Z7-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/32/mwq0jhwd3dx7vjqmm8hkljp80000gn/T/pip-build-m1ieVO/fatiando

论坛中有人通过电子邮件问我: Re Fiando,您是否安装了 Xcode 命令行工具?例如看到这个 http://railsapps.github.io/xcode-command-line-tools.html

但是当我尝试验证我是否按照那里的建议成功安装了 Xcode 命令行工具时,我得到了这个,所以我认为这不是问题:

-bash: /Library/Developer/CommandLineTools: is a directory

3 月 16 日更新 Leo Uieda 建议的尝试解决方案。

pip install --upgrade https://github.com/fatiando/fatiando/archive/kill-omp.zip 没有问题,但是

pip install --upgrade https://github.com/fatiando/fatiando/archive/master.zip 让我回到第 1 格:

...
...    
fatiando/gravmag/_polyprism.c:349:10: fatal error: 'omp.h' file not found

        #include "omp.h"

                 ^

        1 warning and 1 error generated.

        error: command '/usr/bin/clang' failed with exit status 1

        ----------------------------------------
        Rolling back uninstall of fatiando

【问题讨论】:

  • 请在问题中包含终端输出,而不是在外部页面上。
  • Ismail 非常长,1100 多行。我应该包括整个事情吗?我不确定什么是相关的,什么不是。

标签: python gcc anaconda


【解决方案1】:

这是 Fiando 安装的一个非常常见的问题,尤其是在 Windows 和 Mac 上。在 PR 106 中为 fatiando.gravmag 正向建模模块引入了 OpenMP。它很容易实现(只需将range(ndata) 替换为prange(ndata)),并且与顺序执行相比,速度提高了1.5-2 倍。此外,并行执行是自动的。所以当时这似乎是一个很好的权衡(“只需安装一个额外的依赖项?会出什么问题?”)。

当 Anaconda gcc 和默认的 Mac gcc 没有随 OpenMP 提供时,问题就开始了。因此,Windows 用户必须安装额外的依赖项(以非常特定的顺序,如撒旦仪式),而 Mac 用户必须自谋生路。

OpenMP 和已编译的 Cython 模块将从 Fiando (#169) 中删除,优先于 multiprocessingnumba。这将使它成为一个纯 Python 包(无需编译),并且大部分安装问题都应该得到解决。

与此同时,PR 177 从 Cython 模块中删除了 OpenMP 要求。这应该可以解决您当前的安装问题。要立即获取更改,您可以通过运行从kill-omp 分支安装版本:

pip install --upgrade https://github.com/fatiando/fatiando/archive/kill-omp.zip

如果上面的命令不起作用,说明pull request已经被合并到了项目的主分支(master)中。如果是这种情况,您可以从master 分支安装最新版本:

pip install --upgrade https://github.com/fatiando/fatiando/archive/master.zip

这些更改将包含在未来的 v0.4 版本中。希望这能解决您的问题。

【讨论】:

  • 今晚我试试
  • 对不起,我不是说你应该运行这两个命令。现在只使用第一个。将来,这将被合并到 master 分支中,并正式成为包的一部分。您应该先卸载 Fiando,以防万一。
【解决方案2】:

(知道您使用的是哪个版本的 gcc 会很有用。)

在 v4.9 之前,gcc 不附带 OpenMP

请参阅this answer 可以帮助您使用 xcode 更新 gcc。

【讨论】:

  • 当我在终端上输入:gcc --version,我得到这个:i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1(基于 Apple Inc. build 5658)( LLVM build 2335.15.00) - 请参阅我对问题的更新。
  • 第二个和第三个答案中的建议不起作用。我跟随本教程的第一个分析者solarianprogrammer.com/2013/06/11/compiling-gcc-mac-os-x 将尝试它。
猜你喜欢
  • 1970-01-01
  • 2016-11-01
  • 2011-11-11
  • 1970-01-01
  • 1970-01-01
  • 2018-09-30
  • 2012-06-21
  • 2019-12-01
  • 2023-03-19
相关资源
最近更新 更多