无法使用 pip 在 python 3 中安装 GDAL(clang 失败,退出状态为 1)

Posted

技术标签:

【中文标题】无法使用 pip 在 python 3 中安装 GDAL(clang 失败,退出状态为 1)【英文标题】:Unable to install GDAL in python 3 using pip (clang failed with exit status 1) 【发布时间】:2014-06-08 02:17:38 【问题描述】:

从终端(Mac OS X Mavericks)运行sudo pip3.4 install gdal 后,我收到一条错误消息,指出未找到'col_port.h' 文件并显示以下错误:command '/user/bin/clang/ failed with exit status 1(完整消息如下)。

我有 gdal 1.11(从 kingchaos.com 下载的完整框架版本)和最新版本的 Xcode 命令行工具 -Apple LLVM 版本 5.1 (clang-503.0.40)(基于 LLVM 3.4svn)


这是我在运行sudo pip3.4 install gdal 命令后得到的错误:

/usr/bin/clang -fno-strict-aliasing -Werror=declaration-after-statement -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch i386 -arch x86_64 -g -I../../port -I../../gcore -I../../alg -I../../ogr/ -I/Library/Frameworks/Python.framework/Versions/3.4/include/python3.4m -I/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/numpy/core/include -I/Library/Frameworks/GDAL.framework/Versions/1.11/include -c extensions/gdal_wrap.cpp -o build/temp.macosx-10.6-intel-3.4/extensions/gdal_wrap.o
extensions/gdal_wrap.cpp:2230:11: warning: explicitly assigning a variable of type 'int' to itself [-Wself-assign]
                    res = SWIG_AddCast(res);
                    ~~~ ^              ~~~
extensions/gdal_wrap.cpp:2233:11: warning: explicitly assigning a variable of type 'int' to itself [-Wself-assign]
                    res = SWIG_AddCast(res);
                    ~~~ ^              ~~~
extensions/gdal_wrap.cpp:2535:22: warning: unused variable 'swig_empty_runtime_method_table' [-Wunused-variable]
  static PyMethodDef swig_empty_runtime_method_table[] =  NULL, NULL, 0, NULL ;/* Sentinel */
                     ^
extensions/gdal_wrap.cpp:2855:10: fatal error: 'cpl_port.h' file not found
#include "cpl_port.h"
         ^

3 warnings and 1 error generated.
error: command '/usr/bin/clang' failed with exit status 1

【问题讨论】:

【参考方案1】:

解决方案是使用homebrew,然后运行pip3.4

brew install GDAL

并且,一旦安装,

pip3.4 install gdal

【讨论】:

效果很好,我尝试了所有其他解决方案,但没有任何效果,但这一个就像一个魅力 D:【参考方案2】:

今天遇到了这个问题。使用 brew 安装了 GDAL,但使用 pip3 失败。解决方案是确保您尝试使用 pip 安装的版本与 homebrew 安装的版本相同。

所以首先使用自制软件安装 gdal

brew install gdal

您应该能够在安装过程中看到正在安装的版本。如果您已经安装了 gdal,则可以使用以下命令检查版本:

brew info gdal

对我来说,这表明为我安装的 gdal brew 版本是:2.4.4 因此,您可以使用 pip 安装正确的版本

pip3 install gdal==2.4.4

这终于对我有用了。

【讨论】:

以上是关于无法使用 pip 在 python 3 中安装 GDAL(clang 失败,退出状态为 1)的主要内容,如果未能解决你的问题,请参考以下文章

无法在 PyCharm 中安装 PyTorch(Python 3.9 / macOS)

在 docker 镜像中安装 Python3.9 和 pip(而不是 python 3.8)

无法使用 Ubuntu 在 docker 容器中安装 pip 包

由于从 `https://pypi.python.org/simple/` 返回的“永久移动”错误,`pip` 无法在 Docker 容器中安装包

在 Debian Linux 中安装 pip3 后无法导入 pyperclip

pip install tensorflow-gpu 在 python 3.5 中安装