首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python:从项目层次结构中同一级别的另一个目录导入模块

Python:从项目层次结构中同一级别的另一个目录导入模块
EN

Stack Overflow用户
提问于 2013-11-19 23:45:11
回答 4查看 119.5K关注 0票数 101

我看过各种各样的例子和其他类似的问题,但我似乎找不到一个与我的场景完全匹配的例子。我觉得自己像个笨蛋在问这个问题,因为有太多类似的问题,但我就是不能让它“正确”地工作。这是我的项目:

代码语言:javascript
运行
复制
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脚本向上引用一个目录并向下引用另一个目录。

请注意,我可以使用以下命令来解决问题:

代码语言:javascript
运行
复制
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
import Modules.LDAPManager as LDAPManager

我听说这是一种糟糕的做法,令人沮丧。

脚本中的文件旨在直接执行(脚本中的init.py是否有必要?)。我已经读过了,在这种情况下,我应该使用-m标志执行CreateUser.py。我已经尝试了一些变体,但似乎无法让CreateUser.py识别LDAPManager.py。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20075884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档