2024-10-05 11:30:44 发布
网友
我在python 2.6中使用pylint+pydev。 我有一个模块只有这行代码
from email import Message
现在,当我试着运行这个模块时,它运行得很好。但是pylint报告了一个错误:
ID: E0611 No name 'Message' in module 'email'
尽管它存在。。。 知道为什么吗?
我喜欢pylint,但是我发现我必须使用很多# pylint: disable-msg=E0611和类似的东西来让它在完全正确但混淆它的情况下关闭(例如,在本例中,由于email在玩导入技巧)。
# pylint: disable-msg=E0611
email
意识到这是一个老问题,但正确的答案是,使用Richie描述的“import hackery”调用所需内容的老方法早已被弃用(尽管仍出现在许多教程中)。如果您使用新的方法,您将编写更好的代码,pylint不会抱怨。
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'
我意识到这对pylint的工作没什么帮助,但它可能有助于解释这个问题。
我喜欢pylint,但是我发现我必须使用很多
# pylint: disable-msg=E0611
和类似的东西来让它在完全正确但混淆它的情况下关闭(例如,在本例中,由于email
在玩导入技巧)。意识到这是一个老问题,但正确的答案是,使用Richie描述的“import hackery”调用所需内容的老方法早已被弃用(尽管仍出现在许多教程中)。如果您使用新的方法,您将编写更好的代码,
pylint
不会抱怨。例如
应该是
等等
email
模块使用了一些可怕的导入黑客,这在过去让我很痛苦。你可以这样做:但你不能这样做:
我意识到这对pylint的工作没什么帮助,但它可能有助于解释这个问题。
相关问题 更多 >
编程相关推荐