--Flask-RESTPlus scheint die Wartung zu beenden, und wenn Sie es weiterhin verwenden, sieht die Gabel Flask-RESTX gut aus.
Ich habe einen kleinen Web-API-Server in Flask entwickelt und die API-Spezifikationen mit Flask-RESTPlus dokumentiert. Die Entwicklung auf der Flaschenseite war ruhig und ich habe sie im letzten Monat oder so nicht berührt, aber ein Fehler trat auf, als ich versuchte, den Betrieb mit einer geringfügigen Änderung zu überprüfen.
Wenn ich das Protokoll überprüfe, ist es Moos im Werkzeugpaket. Der Pegel befindet sich nicht in der Nähe des Korrekturpunkts.
../../../../.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'
Sicherlich hatte ich im letzten Monat oder so die vorliegende virtuelle Umgebung aus verschiedenen Gründen gelöscht und zum Zeitpunkt dieser Korrektur neu erstellt. Ich packe die Datei "anforderungen.txt "von pip neu, aber aufgrund von Versionsabhängigkeiten kann etwas passieren.
Wenn Sie googeln, ist das Problem von Github ein Hit. Es sieht aus wie das. flask-restplus is broken by Werkzeug 1.0.0 #777
cached_property
wurde von under werkzeug
nach under werkzeug.utils
verschoben, als Werkzeug Anfang Februar 2020 Version 1.0.0 wurde. Es scheint, dass der obige Fehler aufgetreten ist, weil flask_restplus
einen Ort hatte, an dem cached_property
importiert und verwendet wurde.
Die Paketabhängigkeiten von Flask werden als "Werkzeug> = 0.15" geschrieben, sodass die Installation von Pip-Modulen von Grund auf von größeren Werkzeug-Upgrades betroffen ist.
Wenn Sie sich noch einmal README.md von Flask-RESTPlus Github-Seite ansehen, steht die folgende Beschreibung am Anfang. Es wurde Anfang Januar 2020 hinzugefügt.
IMPORTANT NOTICE:
This project has been forked to
Flask-RESTX <https://github.com/python-restx/flask-restx>
_ and will be maintained by by thepython-restx <https://github.com/python-restx>
_ organization. Flask-RESTPlus should be considered unmaintained.
Flask-RESTPlus wird nicht mehr gewartet, Gabel Flask-RESTX wird in Zukunft gewartet. Und das.
Es wäre schön, die Version von Werkzeug manuell zu senken, aber ich dachte, dass die Entwicklung noch eine Weile andauern würde, also entschied ich mich, Flask-RESTX auszuprobieren. In Bezug auf die Flask-RESTX-Seite scheint die Verwendung fast dieselbe zu sein wie bei Flask-RESTPlus. Also habe ich versucht, es vorerst durch einfachen Ersatz zu bewegen. Der Code sieht so aus.
flask_restplus
from flask_restplus import Namespace, fields, Resource
from flask_restplus.namespace import HTTPStatus
flask_restx
from flask_restx import Namespace, fields, Resource
from flask_restx.namespace import HTTPStatus
Damit allein hat es funktioniert, ohne vorerst einen Fehler auszugeben. Flask-RESTX verwendet die neueste Version von PyPI, 0.1.1. Dies hat eine Einschränkung von werkzeug (<= 0.16.1), so dass es den Anschein hat, dass das Problem durch eine Neuinstallation des pip-Pakets gelöst wird.
Nach dem Überprüfen des neuesten Codes auf Github scheint Werkzeug 1.0.0 mit der geänderten Importschreibmethode in Ordnung zu sein. Wir hoffen, dass PyPI diese Version in Zukunft widerspiegeln wird.
Ich habe die Einstellung in der Konfiguration auf die Standardeinstellung oder ein wenig geändert, aber dies spiegelte auch die Einstellung nicht wider, es sei denn, ich habe den Schlüsselnamen von dict geändert. Dies ändert auch nur "RESTPLUS_" in "RESTX_", daher ist es hilfreich, mechanisch zu sein.
flask_restplus
app.config['RESTPLUS_MASK_SWAGGER'] = False
app.config['RESTPLUS_JSON'] = {'ensure_ascii': False}
flask_restx
app.config['RESTX_MASK_SWAGGER'] = False
app.config['RESTX_JSON'] = {'ensure_ascii': False}
Recommended Posts