烧瓶脚本:从flask._compat import text_type ModuleNotFoundError:没有名为'flask._compat'的模块

mor*_*asi 11 python flask

使用 Flask-Script 时,导入 Manager 时出现错误。

我已经安装了 pip Flask 和 Flask-Script。我该如何解决?

管理文件

from flask_script import Manager

from main import app

manager = Manager(app)

@manager.command
def hello():

    print ("hello")

if __name__ == "__main__":
    manager.run()
Run Code Online (Sandbox Code Playgroud)

主文件

from flask import Flask

app = Flask(__name__)
Run Code Online (Sandbox Code Playgroud)

错误

from flask_script import Manager

from main import app

manager = Manager(app)

@manager.command
def hello():

    print ("hello")

if __name__ == "__main__":
    manager.run()
Run Code Online (Sandbox Code Playgroud)

Ash*_*hna 11

您是否将 Flask 更新到 2.0.0 版?将 Flask 降级到1.1.2版,它会起作用。

编辑
您可以简单地使用以下命令,而不是与 Flask-Script 一起使用:

flask db init初始化数据库
flask db migrate迁移新更改
flask db upgrade升级等。

  • @RyanAquino 不,“Flask-Migrate”可用并且运行良好!只是不再使用“Flask-Script”,而是被更好的 Flask CLI 取代,其他所有请看下面的答案:/sf/answers/4871547691/ 和“Migrate Flask-Script” Flask 2.0 CLI`文章 (2认同)

Sun*_*Pro 10

降级为flask-script==2.0.5对我有用,即使在使用时也是如此Flask==2.0.2


小智 6

我删除了

from flask_script import Manager
Run Code Online (Sandbox Code Playgroud)

manager = Manager(app)
Run Code Online (Sandbox Code Playgroud)

从我的主应用程序。

并从requirements.txt 文件中删除了Flask-Script。

在github上找到:

Flask_script 不是 Flask 本身,而是由其他人编写的(已死 - 存储库存档)flask 扩展。

现在我的程序使用 Flask 2.0.1 运行


小智 5

1 - 我PyCharm\settings\projet: myapp\python interpreter通过选择我的解释器并安装像Flask它自己一样丢失的库来手动安装模块,flask-migrate并且flask-script.

2 - 关于这个特定的错误:from flask._compat import text_type
ModuleNotFoundError: No module named 'flask._compat'-

发生这种情况是因为 python 在Flask._compat目录上搜索而它不存在,所以我改变了如下:(上flask_script/__init__.py

在哪里:

from ._compat import text_type 在原始烧瓶脚本文件上

到 :

from flask_script._compat import text_type

然后它起作用了!!

  • 目前 Flask-Script 与 Flask 2.0.1 不兼容。我已经编辑了我的答案。 (2认同)