18

@Miguel フラスコメガ チュートリアルをフォローしています。第 3 章で、彼は Web フォームとフラスコ WTF 拡張機能について話し、このように拡張機能をインストールするsudo pip install Flask-WTFと、

Flask-WTF Flask WTForms Werkzeug Jinja2 itsdangerous markupsafe のインストールに成功しました

しかし、実行する./run.pyとエラーが発生します:

Flask.ext.wtf` という名前のモジュールはありません

エラーをグーグルで検索し、次のように実行しようとしましflask/bin/python run.pyたが、同じエラーが発生し、試してみましたflask/bin/activate

更新:同じエラーが発生した場合、これが問題を解決したものです。次のものをインストールしました。すべてが必要なわけではありませんが、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
4

7 に答える 7

14

古いバージョンのインポート スタイルを使用している可能性があります。

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

于 2013-11-17T16:50:35.467 に答える
7

私も同じ問題を抱えていました。ステップ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

この仮想環境「フラスコ」を作成したので、インストールされたすべてのモジュールは仮想環境 (フラスコ) でのみ使用できます。

「python run.py」ではなく「flask/Scripts/python run.py」を実行することを忘れないでください

于 2014-03-20T07:11:30.587 に答える
5

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

現在、仮想環境にいるため、そこに存在するバージョンの python が起動され、設定したすべてのライブラリが表示されます。これは、必要なものです。そのため、ターミナル プロンプトで仮想環境がまだアクティブであることが示されている間は、run.py実行してファイルを起動できpython run.py、問題が解決するはずです。

于 2013-11-17T20:00:27.387 に答える
0

これを行う: 。フラスコ/ビン/活性化

すると正常に動作します。

乾杯。

于 2016-09-03T17:51:46.887 に答える
-1

コマンド pip install -U Flask-WTF を実行して、flask.ext.wtf import Form from wtforms import TextField、BooleanField from wtforms.validators import Required に変更できます。

于 2016-01-25T08:14:13.313 に答える