繁体   English   中英

从git子模块导入python文件而无需sys.path.append

[英]Import python files from git submodule without sys.path.append

我有一个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”的内容。

如果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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM