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

该程序具有以下结构:

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


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

因此,如何确定在开发和部署过程中,Python路径中始终带有mypr?无需更改* .pth或编辑Windows PATH。在运行时是否存在一些合理的技巧来链接mypr

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

最佳答案

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

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


然后,您应该可以通过以下方式导入“ gui”:

from gui import Gui

10-06 05:51
查看更多