Python 导入模块错误

Python 导入模块错误

我在 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

默认情况下,所有软件包都已正确安装,因为我可以通过 shell 访问文件,但不能在执行文件时直接访问:python email.py

答案1

我认为您没有正确指定模块和传入子模块。您实际上应该这样做:

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

我使用helppython 的函数检查“PACKAGE CONTENTS”下的电子邮件模块包含什么,并推断出例如它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__"]

相关内容