首页 > 解决方案 > 如何在python中引用子模块

问题描述

我有以下结构。

在此处输入图像描述

以下是 call_module1_module2.py 中的代码。这工作正常。我可以参考这两个模块。

from module1.file1 import *
from module2.file2 import *

function1()
function2()

但是,当我尝试从module2中的file2.py调用module1文件夹的file1.py中的function1时,使用下面的代码

from tmodules.module1.file1 import *

我收到一个错误,即找不到模块“tmodules”。它是父文件夹/项目的名称。

我错过了什么?所有的init .py 都是空的。我应该在该文件中添加任何内容吗?

标签: pythonpython-3.x

解决方案


我常用的两种解决方案:1)从根文件夹中引用子模块,例如:

from top_module.child_folder.some_submodule import some_function

2)如果您位于仅下方一层,您可以执行以下操作:

from ..parent_folder.some_submodule import some_function

2bis) 如果您在同一个文件夹中,则:

from .hello_brother_module import some_function

您也可以添加路径,sys.path但我个人觉得这个解决方案不优雅


推荐阅读