Python相对导入脚本向上两级

2024-06-28 20:15:11 发布

您现在位置:Python中文网/ 问答频道 /正文

在过去的一个小时里,我一直在为我的包裹里的进口货而挣扎。

我的目录结构如下:

main_package
 |
 | __init__.py
 | folder_1
 |  | __init__.py
 |  | folder_2
 |  |  | __init__.py
 |  |  | script_a.py
 |  |  | script_b.py
 |
 | folder_3
 |  | __init__.py
 |  | script_c.py

我想访问script_b.py中的代码以及script_c.py中的代码。我该怎么做?

如果我把一个简单的import script_b放在script_a.py里面,当我运行

from main_package.folder_1.folder_2 import script_b

我遇到了一个

ImportError: no module named "script_b"

对于访问script_c.py,我没有任何线索。我找不到任何关于访问两级以上文件的信息,但我知道我可以使用

from .. import some_module

如何从script_a.py访问这两个文件?


Tags: 文件代码frompyimport目录packageinit
1条回答
网友
1楼 · 发布于 2024-06-28 20:15:11

要从脚本访问脚本c和脚本b,请使用:

from ...folder_3 import script_c
from . import script_b

或者,如果您使用python3,则可以使用以下命令从脚本a导入脚本b:

import script_b

但是,您可能应该使用绝对导入:

from mypackage.folder_3 import script_c
from mypackage.folder1.folder2 import script_b

另请参见:Absolute vs Relative imports

相关问题 更多 >