首页 > 后端开发 > Python教程 > 如何检索 pyInstaller 生成的 EXE 中的应用程序路径?

如何检索 pyInstaller 生成的 EXE 中的应用程序路径?

DDD
发布: 2024-11-11 14:28:03
原创
370 人浏览过

How to Retrieve the Application Path in a pyInstaller-Generated EXE?

检索由 pyInstaller 创建的 Python EXE 中的应用程序路径

在编程领域,了解应用程序的执行上下文至关重要。特别是在处理捆绑应用程序时,例如使用 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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板