Python: импортировать модуль из другого каталога на том же уровне в иерархии проекта
Я видел много разных примеров и других подобных вопросов, но я могуКажется, я не нашел пример, который точно соответствует моему сценарию. Я чувствую себя полным дураком, спрашивающим об этом, потому что есть так много похожих вопросов, но я просто могукажется, это работает "правильно." Вот мой проект:
user_management (package)
|
|------- __init__.py
|
|------- Modules/
| |
| |----- __init__.py
| |----- LDAPManager.py
| |----- PasswordManager.py
|
|------- Scripts/
| |
| |----- __init__.py
| |----- CreateUser.py
| |----- FindUser.py
Если я переедуCreateUser.py» в основной каталог user_management, я могу легко использовать:"import Modules.LDAPManager"
импортировать LDAPManager.py --- это работает. Что я могу'сделать (что я хочу сделать), это сохранить CreateUser.py в подпапке Scripts и импортировать LDAPManager.py. Я надеялся сделать это с помощью"import user_management.Modules.LDAPManager.py"
, Это нет работа. Короче говоря, я могу сделать так, чтобы файлы Python смотрелись глубже в иерархии, но я могуполучить скрипт Python для ссылки на один каталог и вниз на другой.
Обратите внимание, что я могу решить мою проблему, используя:
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
import Modules.LDAPManager as LDAPManager
Я слышал, что это плохая практика и обескуражен.
Файлы в скриптах предназначены для непосредственного выполнения (этов этом.py в скриптах вообще надо?). Я'Я читал, что в этом случае я должен выполнить CreateUser.py с флагом -m. Я'Я попробовал несколько вариантов этого и просто могуПохоже, что CreateUser.py распознает LDAPManager.py.