manage.py:
from flask_script import Manager
from main import app
manager = Manager(app)
@manager.command
def hello():
print ("hello")
if __name__ == "__main__":
manager.run()
main.py:
from flask import Flask
app = Flask(__name__)
报错信息:
(venv) cjavapy@cjavapy-PC:~/Proyectos Python/flask_script$ python3 manage.py hello
Traceback (most recent call last):
File "manage.py", line 1, in <module>
from flask_script import Manager
File "/home/cjavapy/Proyectos Python/flask_script/venv/lib/python3.8/site-packages/flask_script/__init__.py", line 15, in <module>
from flask._compat import text_type
ModuleNotFoundError: No module named 'flask._compat'
原因:
可能是更新了Flask版本问题,导致Flask._compat
的目录发生变化。
解决方法:
使用如下命令降级;
pip install "Flask==1.1.4"
pip install "werkzeug==1.0.1"
或者
不使用Flask-Script
,使用flask
命令如下:
初始化数据库:flask db init
迁移新更改:flask db migrate
升级:flask db upgrade
还有其它命令...
或者
不降级则可以尝试修改一下flask_script/__init__.py
中from ._compat import text_type
改成 from flask_script._compat import text_type
。