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

科里:

我有一个与内置模块冲突的模块。例如,中myapp.email定义模块myapp/email.py

我可以myapp.email在代码中的任何地方引用而不会出现问题。但是,我需要从我的电子邮件模块中引用内置电子邮件模块。

# myapp/email.py
from email import message_from_string

它只会发现自己,因此会引发一个ImportError,因为myapp.email它没有message_from_string方法。import email当我尝试时会导致相同的问题email.message_from_string

在Python中是否有任何本机支持来执行此操作,还是我将“电子邮件”模块重命名为更具体的名称?

格雷格·休吉尔(Greg Hewgill):

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

from __future__ import absolute_import

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

导入熊猫会导致错误AttributeError:iPython Notebook中模块'pandas'没有属性'core'

为什么导入模块会导致循环导入错误

存在相同名称的模块时从内置库导入

与文件同名的导入模块

从导入的模块覆盖导入模块的内置功能

尝试使用“请求”模块时导入错误

尝试导入“ ruamel.yaml”库会导致“导入错误:没有名为ruamel.yaml的模块”错误

导入与模块同名的类/函数

该模块导入错误

pytest无法导入本地模块(而是导入内置模块)

从用户定义的模块导入方法会导致属性错误

尝试导入NLTK模块时出现导入错误

使用python2.7安装openpyxl会导致“导入错误:没有名为util的模块”

将CommonJS(CJS)导入ES模块(MJS)会导致“ TypeError:模块不是函数”错误

尝试导入python模块会返回ModuleNotFound错误

React导入模块正在开发中工作,但是运行构建会导致错误

如何导入与sys modul同名的本地模块?

导入与当前模块同名的python标准库

Xcode模块导入错误

导入模块错误

python manage.py 导致导入错误:找不到模块

Angular 导入模块错误

在python中使用导入的模块导致权限被拒绝错误

skbio 模块的导入错误

导入两个同名模块

将 AppCentre Pod 添加到 xCode 项目会导致导入模块错误

NodeJS - 动态导入内置模块

错误“在尝试导入 python 模块“yt”时尝试重新注册内置的 cmap 'cubehelix'

延迟(动态)导入 firebase 模块会触发解构错误