自定义导入Python3的麻烦

时间:2018-01-10 21:32:08

标签: python module

我正在尝试在Python3中导入我自己的文件。我的目录如下所示:

/path/folder/__init__.py
/path/folder/custom_module2.py
/path/folder/custom_module.py
/path/launcher.py

INIT:

import custom_module

custom_module:

import custom_module2
def custom_function:
    custom_module2.custom_function()
    print('world')

custom_module2:

def custom_function2:
    print('hello')

启动器:

import folder
custom_function()

它说没有名为custom_module的模块

1 个答案:

答案 0 :(得分:-1)

实际上,如果您只是放置一个名为__init__.py文件的空文件,python会将该目录视为一个包,您可以使用点表示法将其导入。

__init__.py
custom_module2.py
custom_module.py

然后从launcher.py

from folder.custom_module import custom_function
custom_function()
  

需要 init .py文件才能使Python将目录视为包含包;这样做是为了防止具有通用名称的目录(例如字符串)无意中隐藏稍后在模块搜索路径上发生的有效模块。在最简单的情况下, init .py可以只是一个空文件,但它也可以执行包的初始化代码或设置 all 变量,稍后将对此进行描述。 p>

来源:https://docs.python.org/3/tutorial/modules.html#Packages