error: command 'gcc' failed with exit status 1 installing Fatiando (Python Package)
error: command 'gcc' failed with exit status 1 installing Fatiando (Python Package)
我正在尝试安装 fatiando,这是 Python 的地球物理建模包。
我有一个 Mac 和 OS X v10.9.5。按照 package site 上建议的推荐安装,我正在获取 Fatiando 的所有依赖项(通过 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$
可以找到完整的终端输出(1100 多行)here。
我已经联系了开发商,这似乎不是 Fatiando 的问题。
有什么建议吗?
更新,3 月 15 日
当我第一次发布这个时我没有 Xcode,然后我从苹果商店下载了最新的 Xcode。再次尝试,收到相同的消息。然后我看了this and downloaded gcc from here,直接安装了。当我在终端上输入:gcc --version
,我得到这个:i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
不过在那之后,我仍然收到类似的消息。在另一个 Whosebug 领导之后,我尝试从 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 Fatiando,您是否安装了 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
(知道您使用的是哪个版本的 gcc 会很有用。)
gcc 在 v4.9 之前未随 OpenMP 一起提供。
参见 this answer 可以帮助您使用 xcode 更新 gcc。
这是 Fatiando 安装的一个非常常见的问题,特别是在 Windows 和 Mac 上。 OpenMP 是在 PR 106 中针对 fatiando.gravmag
正演建模模块引入的。它很容易实现(只需将 range(ndata)
替换为 prange(ndata)
)并且比顺序执行提速 1.5-2 倍。此外,并行执行是自动的。所以这在当时似乎是一个很好的权衡 ("Just install an extra dependency? What could go wrong?")。
当 Anaconda gcc
和默认 Mac gcc
未随 OpenMP 一起提供时,问题就开始了。因此 Windows 用户必须安装额外的依赖项(按照非常特定的顺序,就像撒旦仪式一样)并且 Mac 用户必须自己照顾自己。
OpenMP 和已编译的 Cython 模块正在从 Fatiando (#169) 中移除,优先于 multiprocessing
和 numba
。这将使它成为一个纯粹的 Python 包(无需编译)并且大多数安装问题应该得到解决。
与此同时,PR 177 从 Cython 模块中删除了 OpenMP 要求。这应该可以解决您当前的安装问题。要立即获得更改,您可以通过 运行:
从 kill-omp
分支安装版本
pip install --upgrade https://github.com/fatiando/fatiando/archive/kill-omp.zip
如果上述命令不起作用,则表示拉取请求已合并到项目的主分支(master)中。如果是这样,您可以从 master
分支安装最新版本:
pip install --upgrade https://github.com/fatiando/fatiando/archive/master.zip
这些更改将包含在未来的 v0.4 版本中。希望这能解决您的问题。
我正在尝试安装 fatiando,这是 Python 的地球物理建模包。 我有一个 Mac 和 OS X v10.9.5。按照 package site 上建议的推荐安装,我正在获取 Fatiando 的所有依赖项(通过 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$
可以找到完整的终端输出(1100 多行)here。
我已经联系了开发商,这似乎不是 Fatiando 的问题。
有什么建议吗?
更新,3 月 15 日
当我第一次发布这个时我没有 Xcode,然后我从苹果商店下载了最新的 Xcode。再次尝试,收到相同的消息。然后我看了this and downloaded gcc from here,直接安装了。当我在终端上输入:gcc --version
,我得到这个:i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
不过在那之后,我仍然收到类似的消息。在另一个 Whosebug 领导之后,我尝试从 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 Fatiando,您是否安装了 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
(知道您使用的是哪个版本的 gcc 会很有用。)
gcc 在 v4.9 之前未随 OpenMP 一起提供。
参见 this answer 可以帮助您使用 xcode 更新 gcc。
这是 Fatiando 安装的一个非常常见的问题,特别是在 Windows 和 Mac 上。 OpenMP 是在 PR 106 中针对 fatiando.gravmag
正演建模模块引入的。它很容易实现(只需将 range(ndata)
替换为 prange(ndata)
)并且比顺序执行提速 1.5-2 倍。此外,并行执行是自动的。所以这在当时似乎是一个很好的权衡 ("Just install an extra dependency? What could go wrong?")。
当 Anaconda gcc
和默认 Mac gcc
未随 OpenMP 一起提供时,问题就开始了。因此 Windows 用户必须安装额外的依赖项(按照非常特定的顺序,就像撒旦仪式一样)并且 Mac 用户必须自己照顾自己。
OpenMP 和已编译的 Cython 模块正在从 Fatiando (#169) 中移除,优先于 multiprocessing
和 numba
。这将使它成为一个纯粹的 Python 包(无需编译)并且大多数安装问题应该得到解决。
与此同时,PR 177 从 Cython 模块中删除了 OpenMP 要求。这应该可以解决您当前的安装问题。要立即获得更改,您可以通过 运行:
从kill-omp
分支安装版本
pip install --upgrade https://github.com/fatiando/fatiando/archive/kill-omp.zip
如果上述命令不起作用,则表示拉取请求已合并到项目的主分支(master)中。如果是这样,您可以从 master
分支安装最新版本:
pip install --upgrade https://github.com/fatiando/fatiando/archive/master.zip
这些更改将包含在未来的 v0.4 版本中。希望这能解决您的问题。