2013-08-18 6 views
11

私はvirtualenvを使って新しいプロジェクトを設定しています。Flask-WTF TextFieldとBooleanFieldをインポートできません。

flask\scripts\pip install Flask-WTF 

私はグローバルのpythonフォルダにインストールは他のパッケージを持っていない:私は、スクリプトフォルダから以下のようにピップvirtualenvを使用して多くのものをインストールしました。私のコードは次のようになります。

# Importing TextField and BooleanField is not working... 
from flask.ext.wtf import Form, TextField, BooleanField 
from flask.ext.wtf import Required 


class LoginForm(Form): 
    openid = TextField('openid', validators=[Required()]) 
    remember_me = BooleanField('remember_me', default=False) 

や他のパッケージはまた、唯一の仮想環境にインストールSQLAlchemyのように発見されました。

私が手にエラーがある:

(flask) D:\Development\grading>flask\Scripts\python.exe restserver.py Traceback (most recent call last): 
File "restserver.py", line 1, in <module> from app import app 
File "D:\Development\grading\app\__init__.py", line 12, in <module> from forms import LoginForm 
File "D:\Development\grading\app\forms.py", line 1, in <module> from flask.ext.wtf import Form, TextField, BooleanField 
File "D:\Development\grading\flask\lib\site-packages\flask\exthook.py", line 87, in load_module 
raise ImportError('No module named %s' % fullname) ImportError: No module named flask.ext.wtf.TextField 

フォームは、TextFieldとのBooleanFieldが見つかりましたがされていません。ここでの問題は何ですか?

更新 は、私はちょうどフラスコ-WTFコードのいくつかを見て、これを見つけた:

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

私は古いバージョンか何かからの例を使用していますか?

+0

これは、あなたの質問に答えていませんが、一度あなたがしています仮想環境では、仮想化されたPythonへのパスを提供する必要はありません。 'activate.bat'スクリプトの一部は、python.exeやpip.exeのような仮想化されたバージョンを指すようにシェル変数を設定しています。また、ソースコードディレクトリ内に仮想環境を置くべきではありません。ベストプラクティスは、すべての仮想環境をそれぞれ別のディレクトリに置き、アクティブ化スクリプトを使用してシェルを調整することです。 –

+1

私はvirtualenvフォルダにソースを入れていません。これは 'app'フォルダにあります。私は実際にPycharmをインストールするスクリプトを使用していないので、プロジェクトを変更している間は何も起動する必要はありません。それは私のためにすべて自動的に処理されます。とにかくおかげで! – Asken

+1

もしできれば、PyCharmを使うためだけに+1を与えるでしょう。大好きです! –

答えて

29

バージョン0.9.0以降、Flask-WTFはwtformsから何もインポートしないため、wtformsからフィールドをインポートする必要があります。

Source

あなたは( docs import文に応じて変更したことに注意してください) wtformsからそれらをインポートする必要があります。

from flask_wtf import Form 

from wtforms import TextField, BooleanField 
from wtforms.validators import Required 
+0

ありがとう!私はこれに少し新しく、チュートリアルを切り替える必要があるようです... – Asken

関連する問題