【问题标题】:ImportError when importing Flask WTF forms导入 Flask WTF 表单时出现 ImportError
【发布时间】:2014-02-12 16:06:13
【问题描述】:

我看不出哪里出错了。我安装了最新的 WTF 表单,但仍然出现此错误。

方法:

from flask.ext.wtf import Form
from wtforms import PasswordField, validators, fields
from wtforms.fields import TextField, BooleanField
from wtforms.validators import Required, Email, EqualTo

结果:

Traceback (most recent call last):

  File "/bin/user_wsgi_wrapper.py", line 67, in __call__
self.error_log_file.logger.exception("Error running WSGI application")
  File "/usr/lib/python3.3/logging/__init__.py", line 1269, in exception
self.error(msg, *args, **kwargs)
  File "/usr/lib/python3.3/logging/__init__.py", line 1262, in error
self._log(ERROR, msg, args, **kwargs)
  File "/usr/lib/python3.3/logging/__init__.py", line 1368, in _log
self.handle(record)
  File "/usr/lib/python3.3/logging/__init__.py", line 1377, in handle
if (not self.disabled) and self.filter(record):
 File "/usr/lib/python3.3/logflask_wtf
wtformsging/__init__.py", line 687, in filter
for f in self.filters:
 File "/bin/user_wsgi_wrapper.py", line 59, in __call__
app_iterator = self.app(environ, start_response)
 File "/bin/user_wsgi_wrapper.py", line 73, in import_error_application
raise e
 File "/bin/user_wsgi_wrapper.py", line 82, in <module>
application = load_wsgi_application()
 File "/bin/user_wsgi_wrapper.py", line 78, in load_wsgi_application
return __import__(os.environ['WSGI_MODULE'], globals(), locals(),     ['application']).application
 File "/var/www/rcham_pythonanywhere_com_wsgi.py", line 16, in <module>
from addressbook.app import app as application
 File "/home/rcham/mysite/addressbook/app.py", line 4, in <module>
from addressbook.forms import LoginForm, ContactsForm
 File "/home/rcham/mysite/addressbook/forms.py", line 1, in <module>
from flask.ext.wtf import Form
 File "/usr/local/lib/python3.3/dist-packages/flask/exthook.py", line 87, in load_module
raise ImportError('No module named %s' % fullname)
ImportError: No module named flask.ext.wtf
ls /home/rcham/.local/lib/python2.7/site-packages/flask

    __init__.py blueprints.py debughelpers.py globals.pyc logging.pyc signals.pyc
    views.py __init__.pyc blueprints.pyc debughelpers.pyc helpers.py module.py 
    templating.py views.pyc _compat.py config.py ext helpers.pyc module.pyc 
    templating.pyc wrappers.py _compat.pyc config.pyc exthook.py json.py 
    sessions.py testing.py wrappers.pyc app.py ctx.py exthook.pyc json.pyc 
    sessions.pyc testing.pyc app.pyc ctx.pyc globals.py logging.py signals.py 
    testsuite


ls /usr/local/lib/python3.3/dist-packages/ | grep wtf

   flask_wtf
   wtforms

【问题讨论】:

  • 你是如何安装flask-wtf的?您的代码很好,可能是环境问题。
  • 你能发帖ls /usr/local/lib/python3.3/dist-packages/flaskls /usr/local/lib/python3.3/dist-packages/ | grep wtf吗?
  • ls /home/rcham/.local/lib/python2.7/site-packages/flask init.py blueprints.py debughelpers.py globals.pyc logging.pyc信号.pyc views.py init.pyc blueprints.pyc debughelpers.pyc helpers.py module.py templating.py views.pyc _compat.py config.py ext helpers.pyc module.pyc templating.pyc wrappers.py _compat.pyc config.pyc exthook.py json.py sessions.py testing.py wrappers.pyc app.py ctx.py exthook.pyc json.pyc session.pyc testing.pyc app.pyc ctx.pyc 全局变量。 py logging.py signals.py 测试套件
  • 它现在可以工作了,你是对的,它们安装在错误的地方

标签: python python-3.x flask wtforms


【解决方案1】:

根据official quickstartflask.ext.wtf应该是flask_wtf

所以你必须将它导入为:

from flask_wtf import FlaskForm 

至少我有,我是从 pip 安装的。

【讨论】:

  • 如果您使用脚本来运行代码(例如 run.py),请检查您正在运行正确的 python 版本:“which python”或“which python3”。如果您使用的是虚拟环境,请确保在您的虚拟环境中运行它。
【解决方案2】:

请使用

from flask_wtf import Form

from wtforms import TextField, BooleanField,IntegerField
from wtforms.validators import Required

自 v0.8 起已更改

【讨论】:

    【解决方案3】:

    看起来您只安装了wtforms,而不是Flask-WTF 扩展。

    要安装Flask-WTFpip install flask-wtf

    【讨论】:

    • 我已经安装了 Flask-WTF
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-21
    相关资源
    最近更新 更多