pylint not recognizing some of the standard library

后端 未结 3 1574
逝去的感伤
逝去的感伤 2021-02-13 01:35

I\'m using pylint + pydev, with python 2.6. I have a module with just this line of code

from email import Message

Now when I try to run this mo

相关标签:
3条回答
  • 2021-02-13 02:17

    I like pylint, but I do find I have to use a lot of # pylint: disable-msg=E0611 and the like to make it shut up in cases that are perfectly correct but confuse it (for example, like in this case, due to email's playing with import tricks).

    0 讨论(0)
  • 2021-02-13 02:28

    realise this is an old question, but the correct answer is that the older ways of invoking what you need, which use the "import hackery" that Richie describes, have long been deprecated (despite still appearing in many tutorials). If you use the new ways, you'll be writing better code and pylint won't complain.

    e.g.

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

    should be

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

    etc.

    0 讨论(0)
  • 2021-02-13 02:29

    The email module uses some horrible import hackery, which has bitten me in the past. You can do this:

    >>> from email import Message
    

    but you can't do this:

    >>> import email
    >>> email.Message
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    AttributeError: 'module' object has no attribute 'Message'
    

    I realise that's not very helpful for making pylint work, but it might help to explain the problem.

    0 讨论(0)
提交回复
热议问题