导入flask.ext会引发ModuleNotFoundError

时间:2018-05-09 19:58:40

标签: python flask

当我尝试使用Flask扩展程序时,我的应用程序在ModuleNotFoundfrom flask.ext.sqlalchemy import SQLAlchemy等行上引发from flask.exthook import ExtDeprecationWarning错误。我安装了Flask和扩展程序。为什么我会收到此错误?

2 个答案:

答案 0 :(得分:6)

您的代码或正在使用的代码中的某些内容正在尝试导入flask.extflask.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有助于解决随后出现的错误(此行可能不相关,因此仅供参考)!