当我尝试将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.
感谢所有帮助。
答案 0 :(得分:2)
波音教授在他的blogpost中很好地解释了错误的原因:
pip安装geopandas似乎可以在Linux和Mac上正常工作。但是,它的一些依赖项具有C扩展名,这些扩展名会导致Windows上的pip编译失败。 在Windows上最好的选择是在可能的情况下安装Python轮子,因为它们包含预编译的扩展。 Anaconda随附的conda软件包管理器会对其存储库中可用的软件包执行此操作。另外,加州大学欧文分校荧光动力学实验室的克里斯托夫·戈尔克(Christoph Gohlke)维护了一个庞大的Windows Python轮子库。
解决方案::您必须手动卸载geopandas及其依赖项,并手动安装软件包,在我的情况下,这就是解决此问题的方法。为此:
首先,您必须通过在命令提示符下编写conda uninstall <package name>
(例如:conda uninstall fiona
)来卸载OSGeo4W,GDAL,Fiona,pyproj,rtree或shapely的所有现有软件包。
从Gohlke下载GDAL,Fiona,pyproj,rtree和shape的轮子。确保选择与您的体系结构(64位)和Python版本(2.7或3.6)匹配的wheel文件。
pip根据第2步中提到的顺序安装您下载的wheel文件。命令将类似于:pip install GDAL-2.2.4-cp36-cp36m-win_amd64.whl
。
将新的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)