Python 2.6でpylint + pydevを使用しています。このコード行だけのモジュールがあります
from email import Message
このモジュールを実行しようとすると、正常に動作します。しかし、pylint はエラーを報告します:
ID: E0611 No name 'Message' in module 'email'
存在しますが...理由はわかりますか?
これは古い質問だと思いますが、正しい答えは、リッチーが説明する「インポートハッカー」を使用する、必要なものを呼び出す古い方法は長い間非推奨になっているということです (まだ多くのチュートリアルに表示されているにもかかわらず)。新しい方法を使えば、より良いコードを書くこと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
等
私は pylint が好きですが、# pylint: disable-msg=E0611
完全に正しいが混乱を招くような場合 (たとえば、この場合のように、email
がインポート トリックで遊んでいるため)を黙らせるために、多くのなどを使用する必要があることがわかりました。 .