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

时间:2020-03-28 03:44:45

标签: python flask flask-wtforms

我目前正在使用flask-wtf version 0.14.2wtforms version 2.21运行conda环境,但无法解决此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)

3 个答案:

答案 0 :(得分:14)

在需求文件中设置werkzeug == 0.16.1可以解决此问题。问题在于1.0.0版本

答案 1 :(得分:10)

猜测该错误与werkzeug的新版本有关。 在新的werkzeug版本中,没有“ url_encode”。 因此,请尝试安装旧版本的werkzeug 像这样:“ pip install werkzeug == 0.16.0” 我的解决方案已解决

答案 2 :(得分:6)

尝试从werkzeug.urls导入