在过去的一小时里,我一直在为我的包装中的进口做斗争。
我有一个像这样的目录结构:
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
的{{1}}代码。我怎么能这样做?
如果我在script_a.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
?
答案 0 :(得分:27)
要从script_a访问script_c和script_b,您可以使用:
import script_b
或者如果你使用python3,你可以通过使用:
从script_a导入script_bfrom mypackage.folder_3 import script_c
from mypackage.folder1.folder2 import script_b
但是,您应该使用绝对导入:
{{1}}