Относительные пути импорта будут работать, только если дочерний модуль загружается из родительского модуля:
from Root.test.test import some_function
Если вы хотите использовать компоненты из двух разных дочерних модулей вместе и в качестве автономных скриптов, я бы предложилиспользуя не относительные пути импорта:
from Root.outlook.outlook import Outlook
Вам понадобится модуль Root в папке, включенной в вашу переменную среды PYTHON_PATH
Также не забудьте добавить init .py для всех папок
some_directory/
Root/
__init__.py
outlook/
__init__.py
outlook.py
test/
__init__.py
test.py
EDIT1:
В зависимости от способа импорта изнутри test.py вы можете столкнуться с 2 различными сценариями
from Root.outlook.outlook import Outlook
потребует, чтобы каталог 'Root' был доступен для python
PYTHON_PATH="...:...:/path_to_some_directory_that_contains_Root"
, в то время как
from outlook.outlook import Outlook
потребуется
PYTHON_PATH="...:...:/path_to_Root"
, который указывает ...другие пути уже присутствуют в переменной окружения, которую вы должны оставить как есть.
Добавление к PYTHON_PATH представляет собой ручной способ быстрого достижения желаемого результата.В действительности, то, что вы должны делать при работе с модулем, это установить его, используя скрипт «setup.py» с disutils внутри корневого каталога и командой
python setup.py install