Python: import modułu z innego katalogu na tym samym poziomie w hierarchii projektu

Widziałem różnego rodzaju przykłady i inne podobne pytania, ale nie mogę znaleźć przykładu, który dokładnie pasuje do mojego scenariusza. Czuję się totalnie cholernie pytający o to, ponieważ jest tak wiele podobnych pytań, ale nie wydaje mi się, żeby to działało „poprawnie”. Oto mój projekt:

user_management  (package)
        |
        |------- __init__.py
        |
        |------- Modules/
        |           |
        |           |----- __init__.py
        |           |----- LDAPManager.py
        |           |----- PasswordManager.py
        |
        |------- Scripts/
        |           |
        |           |----- __init__.py
        |           |----- CreateUser.py
        |           |----- FindUser.py

Jeśli przeniosę „CreateUser.py” do głównego katalogu user_management, mogę z łatwością użyć:"import Modules.LDAPManager" aby zaimportować LDAPManager.py --- to działa. To, czego nie mogę zrobić (co chcę zrobić), to zachować CreateUser.py w podfolderze Skrypty i zaimportować LDAPManager.py. Miałem nadzieję, że uda mi się to osiągnąć"import user_management.Modules.LDAPManager.py". To nie działa. Krótko mówiąc, mogę łatwo uzyskać pliki Pythona w hierarchii, ale nie mogę uzyskać skryptu Pythona, aby odwoływał się do jednego katalogu i do innego.

Pamiętaj, że mogę rozwiązać mój problem, używając:

sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
import Modules.LDAPManager as LDAPManager

Słyszałem, że to zła praktyka i zniechęcony.

Pliki w skryptach mają być wykonywane bezpośrednio (jest tow tym.py w Skryptach nawet konieczne?). Czytałem, że w tym przypadku powinienem wykonać CreateUser.py z flagą -m. Wypróbowałem kilka odmian tego i po prostu nie wydaje mi się, aby CreateUser.py rozpoznał LDAPManager.py.

questionAnswers(3)

yourAnswerToTheQuestion