我有一段代码直到上周都运行良好,但现在却出现以下错误:

AttributeError:模块“fiona”没有属性“path”

我已确保安装并导入了所有必需的库。有人知道可能出了什么问题或我该如何解决这个问题吗?

谢谢!

 pip install geopandas
 pip install fiona

 import geopandas as gpd
 import fiona

 countries = 
 gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))

0


最佳答案
3

TL;DR 更新geopandas==0.14.4或固定fiona到版本1.9.6

它似乎fiona 1.10.0(截至) 2024-09-04 01:14 UTC并且可能已经破坏了一些旧版本geopandas,这只取决于fiona高于某些版本,而不是低于

仔细观察后发现,geopandas直到为止仍会调用fiona.path,但从开始便不再调用。

因此升级geopandas应该0.14.4可以解决这个问题。

或者,强制fiona保留版本1.9.6也应该可行。

注意:升级到geopandas似乎>=1.0会完全删除fiona依赖项,因此它也会解决此问题。但删除 又会带来全新的麻烦geopandas.dataset。有关详细信息,请参阅

1

  • 感谢@t-brito,fiona v1.9.6 解决了这个问题。


    – 

t-brito 的回答是正确的。如果出于任何原因您不想升级 geopandas,您可以在构建新环境时指定所需的 fiona 版本(进入之前可以正常工作的环境而无需重建它,使用命令“pip list”并获取与 geopandas 版本兼容的 fiona 版本)。

在我的例子中,fiona 1.9.6 与 geopandas 0.13.2 匹配

修复 fiona 版本解决了这个问题,我用过,geopandas==0.10.2并且fiona==1.9.6有效!

1

  • 供参考… geopandas 0.10.2 于 2021 年 10 月 16 日发布,差不多是 3 年前了,相当老了。您可以考虑尝试使用较新的版本。


    –