【问题标题】:Import Error when Importing Geopandas导入 Geopandas 时出现导入错误
【发布时间】:2018-11-02 13:40:34
【问题描述】:

当尝试将 geopandas 导入我的 jupyter 笔记本时,我得到一个 ImportError: DLL load failed。我已经从我的终端运行pip install geopandas 并得到“要求已经满足”。我也尝试过pip install --upgrade pip setuptools,但也没有用。以下是尝试导入 geopandas 时的完整错误报告:

ImportError                               Traceback (most recent call last)
<ipython-input-2-fc7d1d298f0c> in <module>()
----> 1 import geopandas

~\AppData\Local\Continuum\Anaconda3\lib\site-packages\geopandas\__init__.py in <module>()
      2 from geopandas.geodataframe import GeoDataFrame
      3 
----> 4 from geopandas.io.file import read_file
      5 from geopandas.io.sql import read_postgis
      6 from geopandas.tools import sjoin

~\AppData\Local\Continuum\Anaconda3\lib\site-packages\geopandas\io\file.py in <module>()
      1 import os
      2 
----> 3 import fiona
      4 import numpy as np
      5 

~\AppData\Local\Continuum\Anaconda3\lib\site-packages\fiona\__init__.py in <module>()
     67 from six import string_types
     68 
---> 69 from fiona.collection import Collection, BytesCollection, vsi_path
     70 from fiona._drivers import driver_count, GDALEnv
     71 from fiona.drvsupport import supported_drivers

~\AppData\Local\Continuum\Anaconda3\lib\site-packages\fiona\collection.py in <module>()
      7 
      8 from fiona import compat
----> 9 from fiona.ogrext import Iterator, ItemsIterator, KeysIterator
     10 from fiona.ogrext import Session, WritingSession
     11 from fiona.ogrext import (

ImportError: DLL load failed: The operating system cannot run %1.

感谢所有帮助。

【问题讨论】:

  • 请尽可能详细地说明您是如何安装 geopandas 的。因为您提到了pip install geopandas,但您似乎使用的是Anaconda?你试过conda install geopandas 吗?
  • 我最初是通过 Anaconda 下载 geopandas。我已经运行 conda install -c conda-forge geopandas 以及 pip install geopandasconda install geopandas 仍然没有成功
  • 你不应该把它们都混在一起,它是导致问题的依赖项(在这种情况下是 fiona 和 gdal),所以仅仅重新安装 geopandas 不会有什么不同。您需要卸载所有依赖项(及其依赖项),然后使用 conda install geopandas 进行全新安装。
  • 通过安装 geopandas 安装的所有包都没有那么容易删除。所以为了测试,我会先创建一个新的 conda 环境,看看它是否在那里工作:conda create -n test-env-geopandas python=3.6 geopandas
  • @E.Lutins,您找到解决此问题的方法了吗?

标签: python importerror geopandas


【解决方案1】:

Boeing 教授在他的blogpost 中很好地解释了错误的原因:

似乎 pip 安装 geopandas 在 Linux 和 Mac 上运行良好。但是,它的一些依赖项具有 C 扩展名,导致在 Windows 上使用 pip 编译失败...... 在 Windows 上最好的办法是尽可能安装 Python 轮子,因为它们包含预编译的扩展。 Anaconda 附带的 conda 包管理器对其存储库中可用的包执行此操作。另外,加州大学欧文分校荧光动力学实验室的 Christoph Gohlke 维护了一个用于 Windows 的大型 Python 轮子库。

解决方案:您必须手动卸载 geopandas 及其依赖项并手动安装软件包,这就是我的问题的解决方案。为此:

  1. 首先,您必须通过在命令提示符中写入conda uninstall &lt;package name&gt;(例如:conda uninstall fiona)来卸载任何现有的 OSGeo4W、GDAL、Fiona、pyproj、rtree 或 shapely 包。

  2. Gohlke 下载 GDAL、Fiona、pyproj、rtree 和 shapely 的轮子。确保选择与您的架构(64 位)和 Python 版本(2.7 或 3.6)相匹配的轮文件。

  3. 按照步骤2中提到的命令pip安装你下载的wheel文件。命令如下:pip install GDAL-2.2.4-cp36-cp36m-win_amd64.whl

  4. 将新的 GDAL 路径(类似于 C:\Anaconda\Lib\site-packages\osgeo,您已在计算机中找到 osgeo 的位置)添加到 windows PATH 环境变量。要了解添加新路径的过程,请单击here

【讨论】:

    【解决方案2】:

    首先将 conda 频道添加到您的设置中(最后一个频道具有最高优先级)。

    conda config --add channels conda-forge
    conda config --add channels defaults
    

    然后尝试使用 conda 创建新环境。

    conda create -n test_python python=3.7 geopandas
    

    在我的情况下,这是 gdal 的问题,尤其是在 conda-forge 上的最新版本(以前的版本很好)。如果在测试环境中安装 geopandas 失败,您可以尝试使用 conda 安装 gdal 的此版本 (win64)。

    conda install "downloaded file path"
    

    【讨论】:

    • 这对我有用。还可以使用conda create -n test_python -c conda-forge python=3.7 geopandas 在安装中指定一个通道,或者使用conda-forgeanaconda
    【解决方案3】:

    我最近在我的工作机器上安装 geopandas 时遇到了这个问题(我没有将目录添加到 PATH 环境的管理员权限)。

    我意识到 pip 安装过程为 osgeo 创建了 2 个文件夹。我刚刚将包含所有可执行文件 (*.exe) 的文件复制到包含 python 脚本 (*.py) 的文件夹中,并且导入工作正常。 (我猜 python 脚本假设其他文件在同一目录中)

    您可能需要在移动文件后重新启动 jupyter 才能注册更改。

    例如: 将Users\USERNAME\AppData\Roaming\Python\Lib\site-packages\osgeo的内容复制到Users\USERNAME\AppData\Roaming\Python\Python27\site-packages\osgeo

    希望对你有帮助。

    【讨论】:

      【解决方案4】:

      我们遇到了同样的问题,我们使用 Python 3.7.1 和 geopandas 0.6.1 解决了这个问题:

      conda create -n test_python python=3.7.1 geopandas=0.6.1
      

      为了在 Jupyter 中切换到正确的环境,我们安装了 nb_conda(参见 How to choose your conda environment in Jupyter Notebook

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-20
        • 2018-12-27
        • 2017-11-04
        相关资源
        最近更新 更多