我已经看到了各种各样的示例和其他类似的问题,但是似乎找不到与我的方案完全匹配的示例。我觉得这很愚蠢,因为有很多类似的问题,但是我似乎无法“正确”地解决这个问题。这是我的项目:
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
我听说这是不好的做法,并且不鼓励这样做。
脚本中的文件旨在直接执行(脚本中的init .py甚至有必要吗?)。我已经读过这种情况,我应该使用-m标志执行CreateUser.py。我对此进行了一些尝试,但似乎无法使CreateUser.py识别LDAPManager.py。
python -m user_management.Scripts.CreateUser