Импорт файлов Python из подмодуля git без sys.path.append - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть 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

Я хочу импортировать 'file_to_import.py'из «my_file1.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'.

1 Ответ

0 голосов
/ 20 февраля 2019

Если 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...