结论
- Flask-RESTPlus似乎停止了维护,并且如果您继续使用它,它的前叉Flask-RESTX看起来不错
-
对于现有代码,只需将
flask_restplus 替换为flask_restx 即可。 - 还必须更改参数名称以反映配置设置
触发
我正在Flask中开发一个小型Web API服务器,并使用Flask-RESTPlus在Swagger中记录了API规范。 Flask方面的开发一直很平静,过去一个月左右我都没有碰过它,但是当我尝试对操作进行稍加修改后就出现了错误。
当我检查日志时,它在werkzeug包中是青苔。液位不在校正点附近。
1 2 3 | ../../../../.pyenv/versions/3.6.9/envs/testenv/lib/python3.6/site-packages/flask_restplus/fields.py:17: in <module> from werkzeug import cached_property E ImportError: cannot import name 'cached_property' |
的确,在过去一个月左右的时间里,由于种种原因,我已经删除了virtualenv,并在此更正时重新创建了它。我正在pip的requirements.txt中重新安装该软件包,但是由于版本依赖性,可能会发生某些情况。
研究
原因
如果您用Google搜索,那么Github上的问题将大受欢迎。看起来像这样。
flask-restplus被Werkzeug 1.0.0破坏了#777
在2020年2月上旬Werkzeug升级到1.0.0版本时,
Flask的软件包依赖项写为
知道Flask-RESTX
如果再次查看Flask-RESTPlus的Github页面上的README.md,您将在开头看到以下说明。它是在2020年1月初左右添加的。
重要通知:
此项目已分叉到
Flask-RESTPlus将不再被维护,叉Flask-RESTX将在将来被维护。然后。
使用Flask-RESTX
尝试使用
应该手动降低Werkzeug的版本,但是我认为开发不会持续一段时间,因此我决定尝试Flask-RESTX。就Flask-RESTX页面而言,用法与Flask-RESTPlus几乎相同,并且看起来不错。因此,我暂时尝试通过简单更换来移动它。代码看起来像这样。
flask_restplus
1 2 | from flask_restplus import Namespace, fields, Resource from flask_restplus.namespace import HTTPStatus |
flask_restx
1 2 | from flask_restx import Namespace, fields, Resource from flask_restx.namespace import HTTPStatus |
仅此一项,它暂时没有任何错误输出。
Flask-RESTX使用最新版本的PyPI 0.1.1。这是werkzeug(