为了账号安全,请及时绑定邮箱和手机立即绑定

尝试导入与内置模块同名的模块会导致导入错误

尝试导入与内置模块同名的模块会导致导入错误

倚天杖 2019-10-09 16:53:42
我有一个与内置模块冲突的模块。例如,中myapp.email定义的模块myapp/email.py。我可以myapp.email在代码中的任何地方引用而不会出现问题。但是,我需要从我的电子邮件模块中引用内置电子邮件模块。# myapp/email.pyfrom email import message_from_string它只会发现自己,因此会引发一个ImportError,因为myapp.email它没有message_from_string方法。  import email当我尝试时会导致相同的问题email.message_from_string。是否有任何本机支持在Python中执行此操作,还是我将“电子邮件”模块重命名为更具体的名称?
查看完整描述

1 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

您将需要阅读有关绝对进口和相对进口的文章,该文章解决了这个问题。采用:


from __future__ import absolute_import

使用该名称,任何未经修饰的程序包名称将始终引用顶级程序包。然后,您将需要使用相对导入(from .email import ...)访问您自己的包。


注意:上面的from ...行需要放在您使用.py的import ...行上方的任何2.x Python 文件中。在Python 3.x中,这是默认行为,因此不再需要。


查看完整回答
反对 回复 2019-10-09
  • 1 回答
  • 0 关注
  • 199 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信