Pylintは、標準ライブラリの一部を認識していません
質問
Python 2.6でPylint + Pydevを使用しています。このコードラインだけのモジュールがあります
from email import Message
このモジュールを実行しようとすると、正常に実行されます。しかし、Pylintはエラーを報告します:
ID: E0611 No name 'Message' in module 'email'
それは存在しますが...何かアイデアはなぜですか?
解決
私はピリントが好きですが、私はたくさん使う必要があると思います # pylint: disable-msg=E0611
そして、完全に正しいが混乱する場合にそれを黙らせるのと同様です(たとえば、この場合のように、 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
等
email
モジュールは、過去に私を噛んだ恐ろしいインポートハッカーを使用しています。あなたはこれを行うことができます:
>>> from email import Message
しかし、あなたはこれをすることはできません:
>>> import email
>>> email.Message
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AttributeError: 'module' object has no attribute 'Message'
それはピリントを機能させるのにあまり役に立たないことを認識していますが、問題を説明するのに役立つかもしれません。
所属していません StackOverflow