Python3.8 ModuleNotFoundError: No module named 'flask._compat'

Python3.8 ModuleNotFoundError: No module named 'flask._compat'

问题描述:

版本:python3.8 Flask2.0.0

使用flask-script的Manage实例运行app.py

app.py

from flask_script import Manager
from apps import create_app
app = create_app()
manage = Manager(app=app)
if __name__ == '__main__':
    manage.run()

报错:ModuleNotFoundError: No module named 'flask._compat'

Traceback (most recent call last):
  File "app.py", line 1, in <module>
    from flask_script import Manager
  File "/Users/ljh/.virtualenvs/flask_env/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'

原因分析:

报错原因,“模块找不到”,

按住command查看flask_script模块进入到__init__.py查看源码,再查看_compat.py时,发现找不到文件。

__init__.py

所以是因为Flask版本太高,没有_compat.py文件。


解决方案

降低Flask版本就行,控制台重新安装Flask,指定1.1.4版本。

 pip3 install flask==1.1.4 

安装成功后控制台再启动:python3 app.py runserver -p 8080,可以正常启动。

(flask_env) ljh@LJhdeMacBook-Air demo2 % python3 app.py runserver -p 8080
 * Serving Flask app "apps" (lazy loading)