python импорт относительного пути 'Ошибка модуля не найдена' - PullRequest
0 голосов
/ 21 февраля 2020

Я в папке 2 пытаюсь выполнить trigger.py

Я использовал:

from ..folder1.subfolder1.function1 import *
from ..folder1.test.py

получена ошибка при относительном импорте без известного родительского пакета

enter image description here

1 Ответ

0 голосов
/ 21 февраля 2020

Если у вас заканчивается folder2, то для всех практических целей trigger.py является самостоятельным модулем, а не частью иерархии пакетов и не может использовать относительный импорт в folder1 (поскольку они не связаны).

Если вы можете, сделайте ваш рабочий каталог родительским каталогом Project и вызовите ваш скрипт с:

python3 -m Project.folder2.trigger

, который запускает модуль в качестве основного точка входа через синтаксис импорта, без потери информации о структуре пакета.

Если весь проект фактически установлен в систему или пользователю site-packages, ваш рабочий каталог не будет иметь значения (он необходим только в том случае, если он не в sys.path автоматически, поскольку сам рабочий каталог включен в sys.path), и вызов будет работать где угодно.

...