我正在编写一个小型应用程序包。它与可移植的 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
,但没有成功。
最佳答案
如果您只想访问“prlib”上方目录中的“gui”模块,可以通过以下方式实现:
import os
import sys
sys.path.append(os.path.join(os.dirname(__file__), '../'))
然后您应该能够通过以下方式导入“gui”:
from gui import Gui
关于独立程序中的 Python 路径/导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6562483/