我正在编写一个小应用程序包。它随便携式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
,但没有运气。
答案 0 :(得分:2)
如果您只想访问'prlib'上方目录中的'gui'模块,您可以通过以下方式实现:
import os
import sys
sys.path.append(os.path.join(os.dirname(__file__), '../'))
然后你应该能够通过以下方式导入'gui':
from gui import Gui