胖蔡说技术
随便扯扯

flask-script使用报错No module named ‘flask._compat’

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版本

查看当前flaskflask-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
赞(0) 打赏
转载请附上原文出处链接:胖蔡叨叨叨 » flask-script使用报错No module named ‘flask._compat’
分享到: 更多 (0)

请小编喝杯咖啡~

支付宝扫一扫打赏

微信扫一扫打赏