У меня есть фрагмент кода, который до прошлой недели работал нормально, но теперь он выходит из строя со следующей ошибкой:
AttributeError: у модуля «Фиона» нет атрибута «Путь».
Я убедился, что все необходимые библиотеки установлены и импортированы. Есть ли у кого-нибудь идеи о том, что может пойти не так или как я могу решить эту проблему?
Спасибо!
pip install geopandas
pip install fiona
import geopandas as gpd
import fiona
countries =
gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))
🤔 А знаете ли вы, что...
С Python можно создавать кросс-платформенные приложения для Windows, macOS и Linux.
TL;DR обновить до geopandas==0.14.4
ИЛИ закрепить fiona
до версии 1.9.6
--
Кажется, fiona
недавно обновился до 1.10.0
(по состоянию на 2024-09-04 01:14 UTC
), и это могло сломать некоторые старые версии geopandas
, которые зависят только от того, что fiona
выше, чем какая-то версия, а не ниже.
При ближайшем рассмотрении geopandas
до версии 0.14.3 все еще вызывает fiona.path
, но в версии 0.14.4 это уже не так.
Так что обновление geopandas
до 0.14.4
должно это исправить.
Альтернативно, принуждение fiona
оставаться на версии 1.9.6
также должно сработать.
ПРИМЕЧАНИЕ. Обновление geopandas
до >=1.0
, похоже, полностью удаляет fiona
как зависимость, поэтому это также решит эту проблему. Но удаление geopandas.dataset
открывает совершенно новую банку с червями. Подробнее об этом см. Как перенести карты в геопанды после удаления наборов данных?
t-brito ответ правильный. Если по какой-либо причине вы предпочитаете не обновлять геопанды, вы можете указать, какую версию fiona вы хотите при создании новой среды (перейдите в среду, которая ранее работала, не перестраивая ее, используйте команду «pip list» и получите версию fiona работаю с версией геопанды).
В моем случае фиона 1.9.6 соответствовала геопандам 0.13.2.