You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyInstaller打包exe后无法获取自身所在目录的问题求助

PyInstaller打包exe后获取自身目录的解决方法

PyInstaller打包后的exe运行时,会把脚本解压到系统临时目录,所以原来通过__file__获取的路径会指向这个临时文件夹,而非exe实际所在目录。你可以通过以下方式修改代码,同时兼容py脚本和exe两种运行场景:

替换原路径获取代码为:

import os
import sys

def get_app_dir():
    if getattr(sys, 'frozen', False):
        # 打包为exe时,获取exe所在目录
        app_dir = os.path.dirname(os.path.abspath(sys.executable))
    else:
        # 运行py脚本时,获取脚本所在目录
        app_dir = os.path.dirname(os.path.abspath(__file__))
    return app_dir

之后在需要获取目录的地方,直接调用get_app_dir()即可。

原理说明:

  • sys.frozen是PyInstaller打包后自动添加的属性,用于标记当前为打包后的运行环境
  • sys.executable在打包后指向exe文件的完整路径,取其目录就是exe所在的文件夹

内容的提问来源于stack exchange,提问作者Arif Hamim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 13:02:02