1
No config file found, using default configuration
************* Module sendmail
C:153,0: Line too long (146/80)
C:156,0: Line too long (105/80)
C:190,0: Line too long (88/80)
F:  8,0: Unable to import 'email.MIMEMultipart'
E:  8,0: No name 'MIMEMultipart' in module 'email'
F:  9,0: Unable to import 'email.MIMEBase'
E:  9,0: No name 'MIMEBase' in module 'email'
E: 10,0: No name 'Encoders' in module 'email'
R: 47,0:sendmail: Too many arguments (7/5)
R: 47,0:sendmail: Too many local variables (17/15)
W: 74,4:sendmail: No exception type(s) specified
W: 95,12:sendmail: No exception type(s) specified
R:142,0:commandline_handler: Too many branches (15/12)

インポートできないことに注意してください。ただし、私のスクリプトは正常に動作します。問題のコードは次のとおりです。

#!/usr/local/bin/python
''' sendmail module.

Can be used to send mail, attachments, or otherwise.

'''
from email.mime.text import MIMEText
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email import Encoders
import getopt
import os
import smtplib
import sys

def main():

プログラムを実行すると問題なく動作しますが、pylint が文句を言うのはなぜですか?

私は単純にpylintを実行しました

pylint sendmail.py

http://www.logilab.org/から pylint と logilab ライブラリをインストールしました

python 64 と 32 ビットの両方が、python 2.6.6 を使用して同じように文句を言います。

4

1 に答える 1

6

Python 2.5 では、さまざまな大文字の名前が変更されました。詳細については、 http://docs.python.org/release/2.7/library/email.html#package-historyを参照してください。基本emailパッケージ__init__.pyは、古い名前を Python で機能させるためにいくつかのトリックを行いますが、pylint にはインポートを行う独自の方法があるため、それらのトリックは pylint では機能しません。

新しい名前に切り替えれば問題ありません。

from email.mime import multipart as MIMEMultipart
from email.mime import base as MIMEBase
from email import encoders as Encoders

例えば。

于 2012-04-27T06:55:06.043 に答える