У меня проблема с питоном в Ubuntu. Кажется, некоторые модули, которые являются частью стандартного пакета, не могут быть импортированы. Пример в Python я пытаюсь импортировать следующие строки:

from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEBase import MIMEBase
from email import encoders

Код генерирует следующую ошибку:

from email.MIMEMultipart import MIMEMultipart
ImportError: No module named MIMEMultipart

Все пакеты были правильно установлены по умолчанию, так как я могу получить доступ к файлам через оболочку, но не напрямую при выполнении файла: python email.py

1 ответ1

0

Я думаю, что вы не правильно указываете модули и вспомогательные подмодули. Вы должны сделать:

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

Я использовал функцию help python, чтобы проверить, что модуль электронной почты содержит в разделе "СОДЕРЖАНИЕ ПАКЕТА", и, например, пришел к выводу, что MIMEmultipart является классом mime:

help("email")
help("email.mime.multipart")

Редактировать:

Простой способ найти, где именно находится объект в данном модуле ТОЛЬКО в Python2 (кажется, python3 не работает с этим):

getattr(__import__("<module_name>"), "<object_name>").__dict__["__name__"]

В вашем случае это что-то вроде:

getattr(__import__("email"), "MIMEMultipart").__dict__["__name__"]
getattr(__import__("email"), "MIMEText").__dict__["__name__"]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .