2009-08-22 12 views
13

私はPython 2.6でpylint + pydevを使用しています。私は、このモジュールを実行しようとすると 私はコードのちょうどこのラインでモジュールを持って標準ライブラリの一部を認識しないpylint

from email import Message 

は今、それが正常に動作します。しかし、エラーを報告しpylint:

ID: E0611 No name 'Message' in module 'email' 

それが存在するが... 任意のアイデアはなぜですか?

+2

なければならない。またlxml.etree' 'で起こります。 – pfctdayelise

答えて

10

私はpylintが好きですが、私は# pylint: disable-msg=E0611などをたくさん使って、完全に正しいがそれを混乱させるケースではシャットダウンする必要があることを発見しました(例えば、email ' sのインポートトリックで遊んでいる)。

+0

ここでは、電子メールのフォールトです。インポートフックでは再生できないはずです。 –

1

emailモジュールは過去に私を噛まれていたひどいインポートハッカーを使用しています。私はそれがpylint仕事を作るための非常に有用ではないが、それが問題を説明するのに役立つかもしれません実現

​​

>>> from email import Message 

いますが、これを行うことはできません:あなたはこれを行うことができます。

+1

あなたはどのバージョンを使用していますか? 'email.Message'はDebian 2.5と2.6を使って私のために働きます。 – Tshepang

13

これは古い質問ですが、正しい答えは、Richieが説明している "インポートハッカー"を使用して、必要なものを呼び出す古い方法は(多くのチュートリアルではまだ出現していますが)新しい方法を使用すると、より良いコードを書くことになり、pylintは文句を言わないでしょう。

from email import Message 
from email import Header 
from email.MIMEText import MIMEText 

from email.message import Message 
from email.header import Header 
from email.mime.text import MIMEText 

+1

tru dat!誰かわかったね?ありがとう! –

+0

PEPやこれが推奨されたソースを参照できますか? – Lukas

+0

@ Lukas - それはPEPのことではなく、 'email'パッケージのものです。この投稿は5歳ですから、古いスタイルと新しいスタイルの具体的な議論は覚えていませんが、私がここでお勧めする新しいスタイルは、 'email'パッケージドキュメント(https:// docs.python.org/2.7/library/email-examples.html)。 – simon

関連する問題