ImportError: невозможно импортировать имя «ASSOCIATION_PROXY» из «sqlalchemy.ext.associationproxy»

Я работаю над небольшим API фляги, используя flask-admin и flask-sqlalchemy. API работает хорошо, но всякий раз, когда я устанавливаю новый пакет, я сталкиваюсь с ошибкой.

Error: While importing 'app', an ImportError was raised:

Traceback (most recent call last):
  File "/Users/brandoncreed/.local/share/virtualenvs/management-System-Wyc_ba1N/lib/python3.8/site-packages/flask/cli.py", line 218, in locate_app
    __import__(module_name)
  File "/Users/brandoncreed/Desktop/Brandon Coding Projects/management-System/src/app.py", line 12, in <module>
    from api.admin import setup_admin
  File "/Users/brandoncreed/Desktop/Brandon Coding Projects/management-System/src/api/admin.py", line 5, in <module>
    from flask_admin.contrib.sqla import ModelView
  File "/Users/brandoncreed/.local/share/virtualenvs/management-System-Wyc_ba1N/lib/python3.8/site-packages/flask_admin/contrib/sqla/__init__.py", line 2, in <module>
    from .view import ModelView
  File "/Users/brandoncreed/.local/share/virtualenvs/management-System-Wyc_ba1N/lib/python3.8/site-packages/flask_admin/contrib/sqla/view.py", line 18, in <module>
    from flask_admin.contrib.sqla.tools import is_relationship
  File "/Users/brandoncreed/.local/share/virtualenvs/management-System-Wyc_ba1N/lib/python3.8/site-packages/flask_admin/contrib/sqla/tools.py", line 11, in <module>
    from sqlalchemy.ext.associationproxy import ASSOCIATION_PROXY
ImportError: cannot import name 'ASSOCIATION_PROXY' from 'sqlalchemy.ext.associationproxy' (/Users/brandoncreed/.local/share/virtualenvs/management-System-Wyc_ba1N/lib/python3.8/site-packages/sqlalchemy/ext/associationproxy.py)

Я не уверен, что вызывает это, но кажется, что после установки нового пакета возникает конфликт между flask_admin и sqlalchemy. Я удалил pipfile.lock в своей виртуальной среде и запустил pipenv install, чтобы посмотреть, будет ли работать новый файл, но это не сработало. Я также попытался удалить новый пакет, чтобы посмотреть, решит ли он проблему, но та же ошибка все еще сохраняется. Мне интересно, было ли это связано с обновлением flask-admin или sqlalchemy.

Почему в 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 может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
388
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Flask-Admin еще не обновлен для работы с SQLAlchemy 2.0. Это открытая проблема для этой конкретной проблемы. Рекомендуемый обходной путь — установить более раннюю версию SQSLALchemy, например:

python3 -m pip install --upgrade 'sqlalchemy<2.0'

Я ценю помощь в этом! Я установил pipenv 'sqlalchemy <2.0', и это сработало для меня.

brandon.c 11.02.2023 21:59

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