在编程领域,了解应用程序的执行上下文至关重要。特别是在处理捆绑应用程序时,例如使用 pyInstaller 创建的应用程序。当应用程序需要访问位于其旁边的配置文件时,就会出现一个常见的挑战。在本文中,我们将探索一种技术来解决此问题,方法是在 pyInstaller 生成的 EXE 中准确检索应用程序的路径。
当使用传统方法构造与应用程序相邻的文件的路径时,如下面的代码片段所示:
import os config_name = 'myapp.cfg' config_path = os.path.join(sys.path[0], config_name)
人们在 pyInstaller EXE 的上下文中遇到了困境。 sys.path 列表通常包含应用程序所在的目录,但它是空的。为了解决这个问题,我们采用了一种更强大的方法来区分脚本和冻结的可执行文件。
import os import sys config_name = 'myapp.cfg' # Distinguish script file from frozen exe if getattr(sys, 'frozen', False): application_path = os.path.dirname(sys.executable) elif __file__: application_path = os.path.dirname(__file__) config_path = os.path.join(application_path, config_name)
在此代码中,我们检查“sys”模块的“frozen”属性。如果为 True,我们推测该应用程序正在作为冻结的可执行文件运行,并从“sys.executable”派生其路径。相反,如果 file 存在,我们就断定应用程序正在以脚本模式运行,并且其路径源自 __file__。
利用此方法可以保证成功检索应用程序的路径,从而能够访问相关文件,如关键配置文件。
以上是如何检索 pyInstaller 生成的 EXE 中的应用程序路径?的详细内容。更多信息请关注PHP中文网其他相关文章!