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

使用auto-py-to-exe编译后__File__路径异常问题求助

关于Python编译为exe后__file__路径变化的原因与解决方法

原因

  • auto-py-to-exe底层依赖PyInstaller实现打包。PyInstaller会把Python脚本及所有依赖打包成单个exe文件,运行时会自动将打包内容解压到系统临时目录(比如你看到的C:/::~1/Temp/_MEI27402/),然后在这个临时目录中执行脚本,因此__file__会指向临时目录里的脚本路径,而非原脚本的桌面路径。

解决方法

如果需要获取exe文件本身的实际路径,而非临时文件路径,可以用以下代码:

import sys
import os

def get_real_path():
    if getattr(sys, 'frozen', False):
        # 处于exe打包环境
        return os.path.abspath(sys.executable)
    else:
        # 处于普通Python脚本环境
        return os.path.abspath(__file__)

print(get_real_path())
  • 逻辑说明:sys.frozen是PyInstaller为打包后的exe添加的特殊属性,用来区分运行环境。sys.executable在exe环境下指向当前运行的exe文件,在普通Python环境下指向Python解释器,通过这个判断就能拿到对应场景下的正确路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 22:01:27