質問

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'

それはピリントを機能させるのにあまり役に立たないことを認識していますが、問題を説明するのに役立つかもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top