安装 geopandas 时出错:“必须指定 GDAL API 版本”在 Anaconda 中

Posted

技术标签:

【中文标题】安装 geopandas 时出错:“必须指定 GDAL API 版本”在 Anaconda 中【英文标题】:Error installing geopandas:" A GDAL API version must be specified " in Anaconda 【发布时间】:2019-07-11 02:13:30 【问题描述】:

安装 geopandas 时出现此错误。我一直在网上寻找它的解决方案,但他们都没有真正解释发生了什么以及如何解决它.. 这是完整的错误:

    Collecting geopandas
  Using cached https://files.pythonhosted.org/packages/24/11/d77c157c16909bd77557d00798b05a5b6615ed60acb5900fbe6a65d35e93/geopandas-0.4.0-py2.py3-none-any.whl
Requirement already satisfied: shapely in c:\users\alvaro\anaconda3\envs\tfdeeplearning\lib\site-packages (from geopandas) (1.6.4.post2)
Requirement already satisfied: pandas in c:\users\alvaro\anaconda3\envs\tfdeeplearning\lib\site-packages (from geopandas) (0.20.3)
Collecting fiona (from geopandas)
  Using cached https://files.pythonhosted.org/packages/3a/16/84960540e9fce61d767fd2f0f1d95f4c63e99ab5d8fddc308e8b51b059b8/Fiona-1.8.4.tar.gz
    Complete output from command python setup.py egg_info:
    A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable.

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\Alvaro\AppData\Local\Temp\pip-install-oxgkjg8l\fiona\

【问题讨论】:

如果你输入gdal-config --version会发生什么? 像这样混合环境管理器真是个坏主意。我将卸载您使用 pip 和 conda 完成的操作,然后仅使用 conda 重试 - 请参阅下面的答案。 我用 conda 和 python 3.7.2 创建了一个新环境。然后我用 "conda install -c conda-forge geopandas" 安装了 geopandas。但是当我在 jupyter notebook 中导入 geopandas 时,它会说“ModuleNotFoundError: No module named 'geopandas'” 而且 sys.modules 中的“geopandas”也是假的。这很奇怪,因为我刚刚安装了它。 我检查了,但错误仍然存​​在 【参考方案1】:
pip install wheel
pip install pipwin

pipwin install numpy
pipwin install pandas
pipwin install shapely
pipwin install gdal
pipwin install fiona
pipwin install pyproj
pipwin install six
pipwin install rtree
pipwin install geopandas

这里是源链接: http://geopandas.org/install.html#installation https://pip.pypa.io/en/latest/user_guide/#installing-from-wheels https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy

如果还是有问题,可以考虑卸载上面的(pip卸载)重新安装。

【讨论】:

它在虚拟环境中创造了奇迹。我在终端中手动安装 fiona 和 gdal。现在我只是按照这个顺序和voela! 第一行是pip install wheels还是pip install wheel? 如何设置pipwin安装库的路径。因为我在我的 virtualenv 中,所以使用 pipwin 安装的包没有列在 venv/lib/site 包中 谢谢,出于某种原因,这是整个解决方案页面中唯一对我有用的解决方案! 我应该补充一点,我还需要安装 geos 和 decartes。【参考方案2】:

地理空间数据抽象库 (GDAL) 是一个为矢量地理空间数据格式设计的库。这是安装 Fiona 的先决条件,它是 OGR 的 Python API(doesn't really stand for anything),而这又是 Geopandas 的先决条件。在类 UNIX 系统上,gdal-config 脚本告诉 Fiona 关于您特定的gdal 安装的信息。

您的 gdal-config 似乎不在您 PATH 上的常用位置之一,因此 Fiona 无法找到它。

如果您使用的是 Anaconda,最好使用 conda remove gdal 删除 gdal,然后重新创建 conda install geopandas

作为一般规则,如果您使用的是 Conda,则永远不应使用 pip 在其中安装某些东西,除非您绝对确定 conda 不提供对它的支持。 (通过指定正确的通道可以在 conda 上找到许多包 - -c 参数。)特别是在 geopandas 的情况下,maintainers recommend 在 pip 上使用 conda,因为 pip 要求您正确安装依赖项。

【讨论】:

如何分享新的错误代码?我必须这样做:ImportError: DLL load failed: No se puede encontrar el módulo especificado. 这是来自 conda 的吗?试试conda install -c conda-forge geopandas 超级详细的答案,让概念清晰,谢谢。【参考方案3】:

我自己在安装 geopandas 时遇到了很多问题,主要是在下载 fiona 和 gdal 时出现错误。我做了上面的每一步并做了一个 conda install geopandas 但失败了。唯一对我有用的是分别安装 fiona 和 gdal 轮。

转到 Christoph 的链接:gohlke:https://www.lfd.uci.edu/~gohlke/pythonlibs/#fiona

您可以搜索 fiona 和 gdal 轮文件。确保根据您的 python 版本选择文件,如果它是 3.7,那么会有 cp37。 下载文件 进入命令提示符,放入 cd 然后 pip install ,安装 GDAL wheel 文件,然后是 fiona,然后执行 pip install geopandas。

这个解决方案对我有用。

【讨论】:

【参考方案4】:

要安装 gdal,我按照以下步骤操作:

    从我的电脑(64位)下载了满足我的版本 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 。该文件是GDAL-3.1.4-cp37-cp37m-win_amd64.whl

    将文件放在桌面上的文件夹中。

    我从 cmd 移动到该目录并执行 python -m pip install GDAL-3.1.4-cp37-cp37m-win_amd64.whl

    接下来以同样的方式安装fiona:python -m pip install Fiona-1.8.18-cp37-cp37m-win_amd64.whl

    为了身材匀称,我执行了conda install -c conda-forge shapely

    之后,我就可以像往常一样安装 keplergl:pip install keplergl

    安装笛卡尔:conda install -c conda-forge descartes(或python -m pip install descartes)。

通过这种方式,我不必玩弄“环境变量”,因为这可能会影响其他程序 干杯..

【讨论】:

【参考方案5】:

我通过运行以下命令解决了这个问题:

pip install pipwin
pip install gdal
pip install fiona
pip install geopandas

此解决方案仅在 Windows 平台上经过测试并成功运行。

【讨论】:

只是想补充一点,我使用 pipwin 而不是 pip 成功安装了 gdal 和 fiona。 我还可以确认 pipwin 可以安装 gdal 和 fiona pip install pipwin pipwin install gdal pipwin install fiona pip install geopandas【参考方案6】:

我可以安装 geopandas 的一种方法是通过 Anaconda Navigator。进入环境并安装包'geopandas'。之后我可以在 spyder 中导入 geopandas 包

【讨论】:

【参考方案7】:

我会补充

!pip install descartes

到@JDOaktown 列表。

【讨论】:

这在我的情况下有效。也许它也可以帮助其他人。 什么是笛卡儿,什么对你没有用?【参考方案8】:

我从 pip install geopandas 开始并得到错误,但后来尝试使用 conda install --channel conda-forge geopandas 并且错误消失了。

【讨论】:

【参考方案9】:

在 RHEL 7.8 中成功安装。 它会自动下载所需的软件包。这可能会有所帮助

安装收集的包:certifi、pyproj、shapely、attrs、click、click-plugins、munch、cligj、fiona、geopandas 成功安装 attrs-20.3.0 certifi-2020.11.8 click-7.1.2 click-plugins-1.1.1 cligj-0.7.0 fiona-1.8.17 geopandas-0.8.1 munch-2.5.0 pyproj-3.0.0。 post1 shapely-1.7.1

【讨论】:

【参考方案10】:

对我来说,唯一的解决方案是从这里安装准备好的二进制文件

https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal

然后本地安装

pip install GDAL-3.1.4-cp38-cp38-win_amd64.whl

【讨论】:

【参考方案11】:

如果你想在 Windows 虚拟环境中安装 GDAL、Geopandas、Shapely、Fiona 等,请为所有这些下载 .whl 文件,然后首先使用安装 GDAL pip install gdal-.whl 按照此命令编辑 venv\Scripts 文件夹中的 activate.bat 文件并添加 GDAL_CONFIG = \venv\Lib\site-packages\osgeo 然后你可以使用 pip install 安装 REST

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。【参考方案12】:

我没有安装 conda,然后只使用 pip 我按照以下步骤操作:

直接下载GDAL和Fiona车轮:

GDAL:https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal 菲奥娜:https://www.lfd.uci.edu/~gohlke/pythonlibs/#fiona

然后:

    点安装 点安装

就我而言,我确实 pip install GDAL-3.4.1-cp38-cp38-win_amd64.whl 和 Fiona-1.8.21-cp38-cp38-win_amd64.whl。其中 cp38 代表 python 3.8。

之后,您也可以使用 pip 安装 geopandas。

    pip install geo pandas

【讨论】:

以上是关于安装 geopandas 时出错:“必须指定 GDAL API 版本”在 Anaconda 中的主要内容,如果未能解决你的问题,请参考以下文章

安装geopandas时报错

windows下安装geopandas

为啥我不能导入 geopandas?

ModuleNotFoundError 尽管包安装

如何填充使用 geopandas 溶解地理数据框时创建的多面体中的孔?

Python之深入解析一行代码计算每个省面积的神器Geopandas