Я работаю над небольшим 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.
Flask-Admin еще не обновлен для работы с SQLAlchemy 2.0. Это открытая проблема для этой конкретной проблемы. Рекомендуемый обходной путь — установить более раннюю версию SQSLALchemy, например:
python3 -m pip install --upgrade 'sqlalchemy<2.0'
Я ценю помощь в этом! Я установил pipenv 'sqlalchemy <2.0', и это сработало для меня.