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

如何获取编译为.exe文件的Python脚本的实际路径?

解决auto-py-to-exe生成的.exe无法获取自身真实路径的问题

当用auto-py-to-exe打包Python脚本后,程序运行时会被自动解压到系统临时目录,此时os.path.abspath(__file__)指向的是临时文件夹里的脚本副本,而非最终的.exe文件路径。以下是两种可行的解决方法:

方法一:利用sys.executable获取exe路径

sys.executable在打包后会直接指向当前运行的.exe文件,未打包时则指向Python解释器。结合打包环境判断使用:

import os
import sys

def get_exe_path():
    if getattr(sys, 'frozen', False):
        # 已打包环境,返回exe文件的完整路径
        return sys.executable
    else:
        # 未打包环境,返回脚本文件路径
        return os.path.abspath(__file__)

# 测试输出
print(get_exe_path())

方法二:结合sys._MEIPASS获取exe所在目录

sys._MEIPASS是PyInstaller打包后生成的临时目录路径,通过它可以判断是否处于打包环境,进而获取exe所在的目录:

import os
import sys

def get_exe_dir():
    if hasattr(sys, '_MEIPASS'):
        # 已打包环境,返回exe所在的文件夹路径
        return os.path.dirname(sys.executable)
    else:
        # 未打包环境,返回脚本所在的文件夹路径
        return os.path.dirname(os.path.abspath(__file__))

# 测试输出
print(get_exe_dir())

如果只需要exe所在的文件夹路径,直接使用os.path.dirname(sys.executable)即可(打包环境下)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 20:33:13