导入Geopandas时导入错误

时间:2018-05-23 14:06:51

标签: python importerror geopandas

当我尝试将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.

感谢所有帮助。

4 个答案:

答案 0 :(得分:2)

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

  

pip安装geopandas似乎可以在Linux和Mac上正常工作。但是,它的一些依赖项具有C扩展名,这些扩展名会导致Windows上的pip编译失败。   在Windows上最好的选择是在可能的情况下安装Python轮子,因为它们包含预编译的扩展。 Anaconda随附的conda软件包管理器会对其存储库中可用的软件包执行此操作。另外,加州大学欧文分校荧光动力学实验室的克里斯托夫·戈尔克(Christoph Gohlke)维护了一个庞大的Windows Python轮子库。

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

  1. 首先,您必须通过在命令提示符下编写conda uninstall <package name>(例如:conda uninstall fiona)来卸载OSGeo4W,GDAL,Fiona,pyproj,rtree或shapely的所有现有软件包。

  2. Gohlke下载GDAL,Fiona,pyproj,rtree和shape的轮子。确保选择与您的体系结构(64位)和Python版本(2.7或3.6)匹配的wheel文件。

  3. pip根据第2步中提到的顺序安装您下载的wheel文件。命令将类似于:pip install GDAL-2.2.4-cp36-cp36m-win_amd64.whl

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

答案 1 :(得分:1)

首先将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"

答案 2 :(得分:0)

我最近在工作机上安装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

希望有帮助。

答案 3 :(得分:0)

我们遇到了同样的问题,通过使用 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