Python 如何";跳过“;子模块导入声明

Python 如何";跳过“;子模块导入声明,python,django,Python,Django,从结构开始(这是一个Django项目) 我通常可以在app_1/views.py上导入完整声明 从my_module.submodule.mixin导入MyMixin 但我希望跳过声明子模块 从my_module.mixin导入MyMixin 我在my_模块和sub_模块中的\uuu init\uuuuu.py两个文件上尝试了x import y中的的一些组合,但我只成功地跳过了所有子模块 从my_模块导入MyMixin 我不喜欢这个选项,因为它隐藏了我所有的文件 有什么方法可以按我想要的

从结构开始(这是一个Django项目)

我通常可以在
app_1/views.py
上导入完整声明

从my_module.submodule.mixin导入MyMixin
但我希望跳过声明子模块

从my_module.mixin导入MyMixin
我在
my_模块
sub_模块
中的
\uuu init\uuuuu.py
两个
文件上尝试了x import y
中的
的一些组合,但我只成功地跳过了所有子模块

从my_模块导入MyMixin
我不喜欢这个选项,因为它隐藏了我所有的文件


有什么方法可以按我想要的方式获得它吗?

您需要在
我的\u模块
目录中的
初始化
py
文件中导入
mixin

root/my\u module/\uuuu init\uuuuu.py

from.submodule导入mixin

如果您想公开特定的子模块类,请按照@abdul aziz barkat所说的去做。如果要公开整个submodule.mixins API,可以执行以下文件

root/my\u模块/mixins.py

from .submodule.mixins import *

请注意,您应该仅使用单个子模块导入来执行此操作。当您开始使用
*
导入多个子模块时,可能会遇到问题。

正如一些评论所提到的,不可能完全按照我的要求执行

我最后做的是将我的文件从
子模块
移动到
我的\u模块
。这缓解了问题,我成功地按照自己的意愿导入了

根目录/
附录1/
views.py
my_模块/
__初始值
mixins.py

这在我的项目结构中是可能的,但可能不是每个人都可以选择的,所以请随意使用其他用户提到的备选方案。

您不能从my_模块写入
。Mixin导入MyMixin
,因为在
my_模块中没有模块
Mixin
(即使在
\uuuu init\uuuu
内部导入,它也不是一个模块)。如果确实需要此功能,您可以在
我的模块
中添加一个文件
mixins.py
,在该文件中您可以从.submodule.mixins导入MyMixin
写入
。很抱歉,这不起作用…设置后,尝试使用
从我的模块导入。mixins导入MyMixin
,找不到模块,出现错误:
导入错误:没有名为mixins的模块
from .submodule.mixins import *