python 从顶级文件夹导入多个文件中的函数

问题描述 投票:0回答:1

我的目录结构如下所示;

file.py
module1/
    __init__.py
    module1_file1.py
    module1_file2.py

假设

module1_file1.py
有一个函数
foo
并且
module1_file2.py
有一个函数
bar
。 我希望能够将这些函数导入到
file1.py
中,而不是;

from module1.module1_file1 import foo
from module1.module1_file2 import bar

我希望能够写作;

from module1 import foo, bar

我该如何去做呢?我想我需要在

__init__.py
中写一些东西,以便可以直接从
module1
访问这些函数?

我尝试将以下内容添加到

__init__.py

from module1_file1 import foo
from module1_file2 import bar

但这给了我以下错误

ModuleNotFoundError: No module named 'module1_file1'
python python-import python-module
1个回答
0
投票

里面

__init__.py
,而不是:

from module1_file1 import foo
from module1_file2 import bar

您可以使用:

from .module1_file1 import foo
from .module1_file2 import bar

这些重要陈述变得相对。

"."
允许Python解析当前的包,即
module1
,并且该包已经导入并且能够找到它。

请记住,Python 只会识别

sys.path
列表中的包。由于运行
file.py
文件,只有 its 目录会添加到
sys.path
中,因此 Python 无法直接找到
module1_file1
。它必须通过
module1
找到它。

© www.soinside.com 2019 - 2024. All rights reserved.