尝试读取shapefile (.shp)并收到ImportError在执行下面的代码行之后。在执行下面的代码之前,我甚至pip安装了GDAL, geopandas, fiona和shaely。
shapefile = gpd.read_file(r'C:Users....Data Analysisshapefileslouisville.shp')
收到的错误如下,
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-164-16243badadbe> in <module>
----> 1 shapefile = gpd.read_file(r'C:Users....Data Analysisshapefileslouisville.shp')
~Anaconda3libsite-packagesgeopandasiofile.py in _read_file(filename, bbox, mask, rows, **kwargs)
164 by using the encoding keyword parameter, e.g. ``encoding='utf-8'``.
165 """
--> 166 _check_fiona("'read_file' function")
167 filename = _expand_user(filename)
168
~Anaconda3libsite-packagesgeopandasiofile.py in _check_fiona(func)
78 def _check_fiona(func):
79 if fiona is None:
---> 80 raise ImportError(
81 f"the {func} requires the 'fiona' package, but it is not installed or does "
82 f"not import correctly.nImporting fiona resulted in: {fiona_import_error}"
ImportError: the 'read_file' function requires the 'fiona' package, but it is not installed or does not import correctly.
Importing fiona resulted in: DLL load failed while importing ogrext: The specified procedure could not be found.
显然,我使用了以下版本的GDAL和fiona组合,这对我不起作用。
GDAL-3.3.2-cp38-cp38-win_amd64.whl
Fiona-1.8.20-cp38-cp38-win_amd64.whl
我不得不卸载上面的版本并安装下面的版本。
GDAL-3.2.3-cp38-cp38-win_amd64.whl
菲奥娜1.8.19——cp38 cp38——win_amd64.whl
在Conda Forge中,我强制卸载了GDAL和Fiona,然后按照Abhiram的建议安装了Fiona 1.8.19。Conda Forge安装了GDAL 3.2.2作为这个过程的一部分,两者似乎可以很好地协同工作。
我也有同样的问题。我还从conda环境中删除了fiona和GDAL,安装了GDAL-3.2.2和fiona - 1.8.19,然后安装了geopandas。为我修复了这个问题。谢谢! !
经过整个下午的努力安装pyogrio
为我工作。运行以下命令安装:
pip install pyogrio
我偶然发现了同样的问题。我能够通过在python 3.7中创建一个新环境并降级gdal包来解决这个问题。
使用Conda Forge,在安装了geopandas之后,我将gdal降级到2.3.3版本,并接受了anaconda建议的依赖项更改。最终,我得到了以下几个版本:
python 3.7.11
geopandas 0.6.1
gdal 2.3.3
霏欧纳 1.8.4