在另一个系统上运行我的烧瓶项目后,我收到了以下消息。应用程序一直在运行,没有问题:
Error: While importing 'app', an ImportError was raised:
Traceback (most recent call last):
File "c:\users\User\appdata\local\programs\python\python39\lib\site-packages\flask\cli.py", line 214, in locate_app
__import__(module_name)
File "C:\Users\User\Desktop\Projekt\app\__init__.py", line 3, in <module>
from flask_restx import Namespace, Api
File "c:\users\User\appdata\local\programs\python\python39\lib\site-packages\flask_restx\__init__.py", line 5, in <module>
File "c:\users\User\appdata\local\programs\python\python39\lib\site-packages\flask_restx\api.py", line 50, in <module>
from .swagger import Swagger
File "c:\users\User\appdata\local\programs\python\python39\lib\site-packages\flask_restx\swagger.py", line 18, in <module>
from werkzeug.routing import parse_rule
ImportError: cannot import name 'parse_rule' from 'werkzeug.routing' (c:\users\User\appdata\local\programs\python\python39\lib\site-packages\werkzeug\routing\__i
nit__.py)我的requirements.txt
Flask~=2.1.2
psycopg2-binary==2.9.3
Flask-SQLAlchemy==2.5.1
flask-restx==0.5.1
qrcode~=7.3.1
PyPDF2==2.6.0
reportlab~=3.6.10
WTForms~=3.0.1
flask-bootstrap==3.3.7.1
flask-wtf==1.0.1发布于 2022-07-25 08:06:22
解决方案(解决办法)是,我在requirements.txt的2.1.2版本中另外包括了werkzeug。
werkzeug==2.1.2关于https://issuemode.com/issues/apache/airflow/111093941#answer-108883148的更多信息
在此之后,我可以启动烧瓶应用程序。
发布于 2022-07-25 12:23:04
这是因为parse_rule()在werkzeug的最新版本中被标记为:internal:,这会影响flask-restx (以及其他许多方面,比如flask-login)。
https://github.com/python-restx/flask-restx/issues/460为flask-restx开放,https://github.com/maxcountryman/flask-login/issues/686为flask-login开放。
正如您已经提到的,固定在旧版本上是目前的解决办法(即werkzeug==2.1.2)。
发布于 2022-08-12 15:11:11
复制这里从github的问题,为那些发现这一点。如果您使用的是与水瓶,并试图降级到Werkzeug 2.1.2,您将得到一个错误,因为烧瓶需要2.2.x从Werkzeug。您需要降低烧瓶的等级,如下所示:
Werkzeug <= 2.1.2
flask == 2.1.2
flask-restx >= 0.5.1 https://stackoverflow.com/questions/73105877
复制相似问题