【问题标题】:Python paths/import in standalone programs独立程序中的 Python 路径/导入
【发布时间】:2011-07-03 10:59:47
【问题描述】:

我正在编写一个小型应用程序包。它使用可移植的 Python 分发,因此代码无法访问 Windows 设置。

程序有这样的结构:

mypr
    __init__.py
    gui
        __init.__.py
    prlib
        __init__.py

我正在尝试在prlib 中执行此操作from mypr.gui import Gui,但当然,mypr 未定义。我可以将它添加到 win 路径,编辑 pth 文件或将 sys.path 附加到当前目录,但是:这将是一个可移植的应用程序,并且目录会改变。

那么,我如何确保 Python 在开发和部署期间始终在路径中包含 mypr?无需更改 *.pth 或编辑 Windows PATH。在运行时是否有一些合理的 hack 来链接mypr

或者,是否可以“相对”导入包?我试过from .gui import Gui,但没有运气。

【问题讨论】:

    标签: python import path


    【解决方案1】:

    如果您只想访问“prlib”上方目录中的“gui”模块,您可以通过以下方式实现:

    import os
    import sys
    sys.path.append(os.path.join(os.dirname(__file__), '../'))
    

    那么你应该可以通过以下方式导入'gui':

    from gui import Gui
    

    【讨论】:

      猜你喜欢
      • 2020-03-06
      • 2015-07-09
      • 1970-01-01
      • 1970-01-01
      • 2020-04-20
      • 2012-08-14
      • 2013-04-16
      • 1970-01-01
      • 2010-09-16
      相关资源
      最近更新 更多