我看过各种各样的例子和其他类似的问题,但我似乎找不到一个与我的场景完全匹配的例子。我觉得自己像个笨蛋在问这个问题,因为有太多类似的问题,但我就是不能让它“正确”地工作。这是我的项目:
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放在Script子文件夹中,然后导入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。
https://stackoverflow.com/questions/20075884
复制相似问题