Как устранить ошибку AttributeError: у модуля «Фиона» нет атрибута «Путь»?

У меня есть фрагмент кода, который до прошлой недели работал нормально, но теперь он выходит из строя со следующей ошибкой:

AttributeError: у модуля «Фиона» нет атрибута «Путь».

Я убедился, что все необходимые библиотеки установлены и импортированы. Есть ли у кого-нибудь идеи о том, что может пойти не так или как я могу решить эту проблему?

Спасибо!

 pip install geopandas
 pip install fiona

 import geopandas as gpd
 import fiona

 countries = 
 gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
194
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

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, Фиона v1.9.6 решила проблему.

Anonymous 05.09.2024 12:22

t-brito ответ правильный. Если по какой-либо причине вы предпочитаете не обновлять геопанды, вы можете указать, какую версию fiona вы хотите при создании новой среды (перейдите в среду, которая ранее работала, не перестраивая ее, используйте команду «pip list» и получите версию fiona работаю с версией геопанды).

В моем случае фиона 1.9.6 соответствовала геопандам 0.13.2.

Исправление версии Фионы решает эту проблему, и я использовал geopandas==0.10.2 с fiona==1.9.6, и это сработало.!

Для информации... geopandas 0.10.2 была выпущена 16 октября 2021 года, то есть почти 3 года назад, что уже довольно давно. Вы можете попробовать использовать более свежую версию.

Pieter 04.09.2024 20:51

Другие вопросы по теме

Похожие вопросы

Я работаю над тем, чтобы сделать бота Python, который будет нажимать кнопку в списке, который повторяется сам, используя селен
Какие замены регулярных выражений помогают при переписывании SQL-запросов MS Access как простых запросов TSQL? Как их можно зациклить с помощью Excel в качестве входных и выходных данных?
Сообщение об ошибке с использованием нескольких замен строк %s
Должны ли классы аутентификации и классы разрешений в представлениях Django REST Framework определяться с помощью списков или кортежей?
Есть ли сценарий, в котором `foo in list(bar)` нельзя заменить на `foo in bar`?
Выполняется ли простое задание в Python дважды?
Итерация (или нет?) параметров для matplotlib для построения функции в Python
Установка ограничения рекурсии не работает в автономном интерпретаторе Python, но работает в онлайн-интерпретаторах
Как вернуть результат от конечной точки fastapi, обрабатывающей массив чисел int32?
Группировка Python по рангу в двух разных направлениях