【发布时间】:2013-01-17 20:15:35
【问题描述】:
可能重复:
Python modules with identical names (i.e., reusing standard module names in packages)
从包内的模块中,有没有办法忽略给定导入的包上下文?因为该包包含另一个与要从系统而不是包中导入的模块同名的模块。
有没有办法在不重命名其他模块的情况下解决这个问题?
【问题讨论】:
-
你能举个例子吗?如果您使用绝对导入,则默认行为是首先尝试系统包。
-
@BrenBarn 在这种情况下我无法使用绝对导入。这是一个 python VIM 插件,当 VIM 加载 python 时,我有一个简单命名为
vim的模块,我可以在我的脚本和模块中导入它。问题是,我还有一个子模块mypackage.vim和模块mypackage.x我想要import vim,但不是包中的那个,我想要VIM 提供的那个。 -
主脚本使用我的
vim模块没有问题,因为它使用它作为mypackage.vim.myfuction("hello world"),它不会与vim.vim_function()冲突。但是当我需要在包的内部模块中使用vim.vim_function()时,问题就出现了。 -
刚刚被标记为与stackoverflow.com/q/10501473/1000282 重复。
标签: python namespaces package