独立程序中的Python路径/导入

时间:2011-07-03 10:59:47

标签: python import path

我正在编写一个小应用程序包。它随便携式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,但没有运气。

1 个答案:

答案 0 :(得分:2)

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

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

然后你应该能够通过以下方式导入'gui':

from gui import Gui