导入错误:无法从“werkzeug”导入名称“url_encode”

Jus*_*ing 15 python flask flask-wtforms

我目前正在运行的畅达环境flask-wtf version 0.14.2wtforms version 2.21我有麻烦解决这个ImportError: cannot import name 'url_encode' from 'werkzeug'

以下代码是完整的回溯。

Traceback (most recent call last):
      File "run.py", line 1, in <module>
        from flaskblog import app
      File "/Users/justinding/Desktop/test/test_wesite/flaskblog/__init__.py", line 10, in <module>
        from flaskblog import routes
      File "/Users/justinding/Desktop/test/test_wesite/flaskblog/routes.py", line 4, in <module>
        from flaskblog.forms import RegistrationForm,LoginForm
      File "/Users/justinding/Desktop/test/test_wesite/flaskblog/forms.py", line 1, in <module>
        from flask_wtf import FlaskForm
      File "/opt/anaconda3/envs/smartbox/lib/python3.7/site-packages/flask_wtf/__init__.py", line 17, in <module>
        from .recaptcha import *
      File "/opt/anaconda3/envs/smartbox/lib/python3.7/site-packages/flask_wtf/recaptcha/__init__.py", line 2, in <module>
        from .fields import *
      File "/opt/anaconda3/envs/smartbox/lib/python3.7/site-packages/flask_wtf/recaptcha/fields.py", line 3, in <module>
        from . import widgets
      File "/opt/anaconda3/envs/smartbox/lib/python3.7/site-packages/flask_wtf/recaptcha/widgets.py", line 5, in <module>
        from werkzeug import url_encode
    ImportError: cannot import name 'url_encode' from 'werkzeug' (/opt/anaconda3/envs/smartbox/lib/python3.7/site-packages/werkzeug/__init__.py)
Run Code Online (Sandbox Code Playgroud)

小智 33

在您的需求文件中设置 werkzeug==0.16.1 可以修复它。问题出在 1.0.0 版本上

  • 最好只是[将flask-wtf设置为0.14.3](https://github.com/scoringengine/scoringengine/issues/670)。 (3认同)

小智 13

猜测错误与新版本的werkzeug有关。在新的 werkzeug 版本中没有“url_encode”。所以尝试像这样安装旧版本的 werkzeug:“pip install werkzeug==0.16.0”我的用这个解决方案修复了


小智 10

尝试从 werkzeug.urls 导入