Подтвердить что ты не робот

Нет модуля с именем flask.ext.wtf

Я следую @Miguel flask мега-учебник, который замечательный. В главе 3 он рассказывает о веб-формах и расширении flaskWTF, устанавливая расширение, подобное этому sudo pip install Flask-WTF привело к

Успешно установлен флакон-колпачок WTF WTForms Werkzeug Jinja2 его опасный markupsafe

но при выполнении ./run.py я получаю сообщение об ошибке:

Нет модуля с именем flask.ext.wtf`

У меня ошибка Google и попытался запустить ее следующим образом: flask/bin/python run.py но получил ту же ошибку, также попробовал flask/bin/activate

Обновление:, если вы столкнетесь с той же ошибкой, это то, что решило проблему для меня Я установил следующее, наверняка, они не все нужны, но поскольку я не пошел один за другим, чтобы узнать, какой из них сделал трюк, я перечисляю их все

flask/bin/pip install flask-login
flask/bin/pip install flask-openid
flask/bin/pip install flask-mail
flask/bin/pip install sqlalchemy
flask/bin/pip install flask-sqlalchemy
flask/bin/pip install sqlalchemy-migrate
flask/bin/pip install flask-whooshalchemy==0.55a
flask/bin/pip install flask-wtf
flask/bin/pip install pytz
flask/bin/pip install flask-babel
flask/bin/pip install flup
4b9b3361

Ответ 1

Вероятно, вы используете стиль импорта из более старых версий:

from flask.ext.wtf import Form, TextField, BooleanField
from flask.ext.wtf import Required

Стиль импорта изменился с версии 0.9.0. Обязательно обновите свой импорт:

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

Вы можете найти примечание об этом изменении в разделе обновления документов:

https://flask-wtf.readthedocs.org/en/latest/upgrade.html#version-0-9-0

Ответ 2

У меня была та же проблема. Я снова прочитал шаги 1, чтобы проверить, куда я поскользнулся.

Не забудьте установить необходимые модули для вашего проекта.

В этом случае следующее:

flask/bin/pip install flask-login
flask/bin/pip install flask-openid
flask/bin/pip install flask-mail
flask/bin/pip install sqlalchemy
flask/bin/pip install flask-sqlalchemy
flask/bin/pip install sqlalchemy-migrate
flask/bin/pip install flask-whooshalchemy==0.55a
flask/bin/pip install flask-wtf
flask/bin/pip install pytz
flask/bin/pip install flask-babel
flask/bin/pip install flup

Поскольку вы создали эту виртуальную среду, "флягу", все установленные модули доступны только в вашей виртуальной среде (фляж).

Не забудьте запустить "flask/Scripts/python run.py", а не "python run.py"

Ответ 3

jbub вправо, но решает проблему, с которой вы столкнетесь, а не проблема, с которой вы сейчас сталкиваетесь, - урок устарел и не упоминает, какие версии библиотеки должны использовать пользователи, поэтому, если вы делаете, так как в учебнике говорится, что вы столкнетесь с проблемами, если вы не измените свои строки импорта в соответствии с тем, что говорит jbub.

Но проблема, с которой вы сейчас сталкиваетесь, не такова: если бы это было так, ваша ошибка была бы No module named flask.ext.wtf.Textfield в данный момент, когда она вообще не может видеть библиотеку.

Это означает, что вы не установили библиотеку Flask-WTF в нужное место, в этом случае похоже, что она должна быть установлена ​​в вашей виртуальной среде, которую вы, похоже, создали под каталогом flask, чтобы сделать вещи немного яснее, я буду ссылаться на этот каталог как venv.

Виртуальная среда - это небольшая комната, вам нужно войти в нее, а затем положить вещи на полку (установить библиотеки). Итак, сначала вам нужно активировать свою виртуальную среду, поэтому запустите терминал и перейдите к созданной виртуальной среде (директория venv), а затем активируйте ее (войдите в комнату):

source bin/activate

Ваше консольное приглашение изменится, чтобы показать, что вы активировали его для этого терминала. Теперь ваш терминал стоит в комнате, поэтому вы можете установить свои библиотеки по мере необходимости, вам даже не понадобится sudo потому что ваша маленькая комната безопасна для вашего пользователя, чтобы играть, это не влияет на мир вне его двери. Поэтому давайте установим flask-wtf (и любые другие библиотеки, которые вам могут понадобиться, запросив pip):

pip install flask-wtf и т.д.

Теперь, поскольку вы находитесь в среде virutal, он запустит версию python, которая существует там, и просмотрите все библиотеки, которые вы настроили, и это то, что вы хотите. Поэтому, пока подсказка терминала показывает, что ваша виртуальная среда по-прежнему активна, вы можете запустить свой run.py файл, запустив python run.py, и он должен решить вашу проблему.

Ответ 4

С Python 3, то, что сработало для меня, менялось:

from flask.ext.wtf import Form

к

from flask_wtf import Form

Ответ 5

Даже после изменения разных стилей импорта и переустановки фляги flask-wtf, если она все еще не работает: затем в config.py("config.py может иметь другое имя, например app_config.py и т.д.)

вставьте строку

sys.path.insert(0, os.path.join(os.path.dirname(__file__), 
'venv/Lib/site-packages'))

установить путь к lib вашего собственного приложения, в моем случае это было "venv/Lib/site-packages"

Ответ 6

Сделайте следующее:. Колба/бен/активировать

Затем он будет работать правильно.

Приветствия.

Ответ 7

вы можете запустить команду: pip install -U Flask-WTF и изменить на из формы импорта flask.ext.wtf из wtforms import TextField, BooleanField from wtforms.validators import Обязательный