在python中如何避免包上下文中的模块名冲突(不重命名)?

在python中如何避免包上下文中的模块名冲突(不重命名)?,python,namespaces,package,Python,Namespaces,Package,可能重复: 从包内的模块,是否有方法忽略给定导入的包上下文?因为包中包含另一个模块,该模块的名称与要从系统而不是从包中导入的模块的名称相同 有没有办法解决这个问题而不重命名其他模块?您是否尝试过 import mypackage.vim as mypvim import vim 您可以使用“as”语句为导入的内容提供另一个别名。您能举个例子吗?如果使用绝对导入,默认行为是首先尝试系统包。@BrenBarn在这种情况下,我无法使用绝对导入。这是一个pythonvim插件,当VIM加载pytho

可能重复:

从包内的模块,是否有方法忽略给定导入的包上下文?因为包中包含另一个模块,该模块的名称与要从系统而不是从包中导入的模块的名称相同

有没有办法解决这个问题而不重命名其他模块?

您是否尝试过

import mypackage.vim as mypvim
import vim

您可以使用“as”语句为导入的内容提供另一个别名。

您能举个例子吗?如果使用绝对导入,默认行为是首先尝试系统包。@BrenBarn在这种情况下,我无法使用绝对导入。这是一个pythonvim插件,当VIM加载python时,我有一个名为simply
VIM
的模块,可以在脚本和模块中导入。问题是,我还有一个子模块
mypackage.vim
和模块
mypackage.x
我想
导入vim
,但不是从包中导入的,我想要的是vim提供的。主脚本使用我的
vim
模块没有问题,因为它使用它作为
mypackage.vim.myfuction(“hello world”)
,它与
vim.vim_函数()不冲突。但是当我需要从包中的模块内部使用
vim.vim_function()
时,问题就出现了。只是标记为的副本。不起作用。我已经放弃并更改了模块的名称=/