当我尝试使用Flask扩展程序时,我的应用程序在ModuleNotFound
或from flask.ext.sqlalchemy import SQLAlchemy
等行上引发from flask.exthook import ExtDeprecationWarning
错误。我安装了Flask和扩展程序。为什么我会收到此错误?
答案 0 :(得分:6)
您的代码或正在使用的代码中的某些内容正在尝试导入flask.ext
或flask.exthook
,这在Flask 1.0中已不再存在。它们在被明显弃用至少一年后被完全删除,并在此之前隐含地弃用多年。任何依赖它的东西都必须升级。
任何from flask.ext import ...
的使用都应该替换为直接导入扩展名。例如,flask.ext.sqlalchemy
变为flask_sqlalchemy
。
导入from flask.exthook import ExtDeprecationWarning
的唯一原因是使之前的弃用警告无效。由于它不再存在,因此没有警告要求静音,并且可以删除该代码。
答案 1 :(得分:1)
我在/bin/superset
中遇到了这个问题,它仅用于警告,因此我将其静音:
#from flask.exthook import ExtDeprecationWarning
from superset.cli import create_app
#warnings.simplefilter('ignore', ExtDeprecationWarning)
请参阅注释行。此外,安装sqlalchemy == 1.2.18有助于解决随后出现的错误(此行可能不相关,因此仅供参考)!