Flask
中适应flask-script
扩展运行,控制台报错:
Administrator@SK-20210214MAUY MINGW64 /g/projects/python/xinluClound (master)
$ python main.py runserver
Traceback (most recent call last):
File "main.py", line 5, in <module>
from flask_script import Manager,Shell
File "G:\projects\python\xinluClound\venv\lib\site-packages\flask_script\__init__.py", line 15, in <module>
from flask._compat import text_type
ModuleNotFoundError: No module named 'flask._compat'
问题排查
排查flask-script
源码可以发现 flask._compat
不存在,flask
中不存在该模块,出现这种问题无外乎是由于两种情况导致的:
flask
版本不适配flask-script
版本flask-script
版本不支持当前flask
版本
查看当前flask
和flask-script
版本如下:
Flask==2.2.2
Flask-Script==2.0.6
示例代码如下:
from flask import Flask
from flask_script import Manager
app = Flask(__name__)
manager = Manager(app)
@manager.command
def runserver():
print('服务启动成功-------')
if __name__ == '__main__':
manager.run()
解决方案
通过问题排查和解决方案总结,发现解决方式有两种:一个修改flask-script
源码,还有一个就是可以通过降低flask
版本实现。
1、修改flask-script
源码
修改site-packages/flask_script/__init__py
文件:
# from flask._compat import text_type
from flask_script._compat import text_type
运行结果:
Administrator@SK-20210214MAUY MINGW64 /g/projects/python/xinluClound (master)
$ python main.py runserver
服务启动成功-------
2、降低flask
版本,低版本flask
中存在flask._compat
$ pip install flask==1.1.2