我遇到了一个问题,无法从另一个模块中导入模块。我知道这句话可能令人困惑,所以我的问题和情况与此处建议的一样:Python相对导入script两级目录。
假设我的目录结构如下:
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_a.py访问script_b.py和script_c.py中的代码。
我已经按照答案所建议的使用绝对导入方式进行了操作。
我在script_a.py中包含了以下代码:
from main_package.folder_3 import script_c
from main_package.folder1.folder2 import script_b
当我运行script_a.py时,出现以下错误:
ModuleNotFoundError: No module named 'main_package'
这里我做错了什么?
python main_package/folder_1/folder_2/script_a.py
不会将main_package
的父目录添加到sys.path
中,因此它无法正常工作,您将会得到ModuleNotFoundError
错误。一个更好的替代方法是使用:python -m main_package.folder_1.folder_2.script_a
。 - undefined