Ответ 1
Реорганизация модуля. Соглашение для имен модулей должно быть строчным, поэтому некоторые из них были переименованы. В этом случае модуль, который вы ищете в Python 2.4.3, email.MIMEMultipart
.
Доброе утро,
В целях тестирования я сделал однострочную программу Python:
from email.mime.multipart import MIMEMultipart
Когда я запускаю его через интерпретатор, я получаю ужасное сообщение об ошибке:
from email.mime.multipart import MIMEMultipart ImportError: нет модуля с именем mime.multipart
Я использую Python версии 2.4.3. Я подозреваю, что модуль электронной почты изменил структуру упаковки в промежуточных версиях, следовательно, ошибка. Верно ли мое подозрение? Если нет, почему оператор импорта не работает?
Спасибо заранее,
КТМ
Реорганизация модуля. Соглашение для имен модулей должно быть строчным, поэтому некоторые из них были переименованы. В этом случае модуль, который вы ищете в Python 2.4.3, email.MIMEMultipart
.
Назовите меня немым, но я получил ImportError: No module named mime.text
, потому что мой script был вызван email.py
.... lol (обвинение в программировании на 4 часа)
Хорошо, из docs для Python 2.4, кажется, вам нужно:
from email.MIMEMultipart import MIMEMultipart
(Хотя вы можете использовать более новую версию Python, если это возможно).
Более простой способ для отладки ошибки:
>>> import email
>>> dir(email)
['Charset', 'Encoders', 'Errors', 'FeedParser', 'Generator', 'Header', 'Iterator
s', 'LazyImporter', 'MIMEAudio', 'MIMEBase', 'MIMEImage', 'MIMEMessage', 'MIMEMu
ltipart', 'MIMENonMultipart', 'MIMEText', 'Message', 'Parser', 'Utils', '_LOWERN
AMES', '_MIMENAMES', '__all__', '__builtins__', '__doc__', '__file__', '__name__
', '__package__', '__path__', '__version__', '_name', 'base64MIME', 'email', 'im
porter', 'message_from_file', 'message_from_string', 'mime', 'quopriMIME', 'sys'
]
>>>
из вышесказанного вы можете заметить, что MIMEMultipart легко доступен для импорта из электронной почты.
Теперь нужно сделать следующее:
from email.mime.multipart import MIMEMultipart
То же самое касается других обычно используемых модулей, таких как MIMEText и MIMEBase (используйте .text и .base соответственно).