2013-04-17 8 views
17

私はPylintにフラスコの輸入をインストールしました。フラスコの同じ設置で、私はアプリケーションでうまく動作しているwtformを持っています。私はwtformsのインポートファイルにPylintを実行するとただし、:Pylint - Pylintはflask.ext.wtfをインポートできませんか?

from flask.ext import wtf 
from flask.ext.wtf import validators 

class PostForm(wtf.Form): 
    content = wtf.TextAreaField('Content', validators=[validators.Required()]) 

Pylintから、私が手:

E: 1,0: No name 'wtf' in module 'flask.ext' 
E: 2,0: No name 'wtf' in module 'flask.ext' 
F: 2,0: Unable to import 'flask.ext.wtf' 

周りの検索中flask.extライブラリはちょうど実際にあるので、私は「それがかもしれ示唆this discussionを見つけましたライブラリへのショートカット "。

どのように私はこれを修正することができますか?大変ありがとう!

答えて

25

したがってflask.extは、実際にはArminによって書かれたカスタムインポーターです。これにより、拡張機能をフラスコに別々のパッケージにインストールできますが、一貫性のある方法でインポートできます。それは明らかにpylintは優雅さに感謝しません(そしてこれは実際には私の意見ではバグです)が、あなたは運が良かったと言われました。この問題を回避するには、以下を実行することです。

import flask_wtf as wtf 
# The above is the equivalent line as: 
# from flask.ext import wtf 
from flask_wtf import validators 
# This is the same as: 
# from flask.ext.wtf import validators 

これは、pylintを幸せにするはずです。 flask.extを使用するのと同じくらいうまくはありませんが、pylintをシャットダウンするかエレガントなコードを使用する必要がありますが、両方を持つことはできません。

7

しばらくこのバグに悩まされて、この問題を解決するためのpylintプラグインを作成しました。コードはflask.extモジュール '見る' にpylintを有効にするにはhttps://github.com/jschaf/pylint-flask

である次のようにします。

  1. pip install pylint-flask
  2. 実行pylint --load-plugins=pylint_flask <your module>
0

使用することは<>の代わりに、フラスコをflask_。内線代わりに使用「flask.ext.wtfインポートバリデータから」の<>

flask_wtfから輸入バリ

メールとメッセージモジュールに同じ問題に直面しました。 「flask.ext.mailからインポートメッセージ、メール」の代わりに「フラスコ_メールインポート」メッセージを使用する必要がありました

関連する問題