我有一个git项目('submodule_folder')克隆为我的git项目('my_project')中的子模块,具有以下文件结构:
my_project
submodule_folder
submodule_folder2
__init__.py
submodule_file.py
file_to_import.py
my_file1.py
my_file2.py
我想从“ my_file1.py”导入“ file_to_import.py”,但是“ file_to_import.py”导入“ submodule_file.py”。
从“ my_file1.py”执行以下导入时,我得到了ModuleNotFoundError: No module named 'submodule_folder2'
。
from submodule_folder import file_to_import
使用Python3,有什么方法可以在不向我的每个文件中写入sys.path.append('submodule_folder/')
的情况下进行此导入吗?我不希望修改“ submodule_folder”的内容。
答案 0 :(得分:0)
如果file_to_import.py
有
from submodule_folder2 import submodule_file
它在Python 2中有效,因为在Py2中它是隐式相对导入。 Python 3禁用了此导入模式,它仅允许绝对导入或显式相对导入。要么
from submodule_folder.submodule_folder2 import submodule_file
或
from .submodule_folder2 import submodule_file