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

Python新手运行代码出现sys模块无_MEIPASS属性AttributeError报错如何解决

报错产生的原因

sys._MEIPASS 是PyInstaller专属的运行时属性,仅当Python脚本被PyInstaller打包为独立EXE可执行文件后,运行EXE时才会被注入到sys模块中,指向程序运行时临时解压资源文件的目录。你直接通过Python解释器运行原始.py格式的脚本时,sys模块不存在这个属性,因此会触发AttributeError。

修复方案
  • 兼容两种运行场景,替换原代码中读取sample.jpg的逻辑,增加属性判断:
    将原代码中的对应代码段:
file_name = sys._MEIPASS + "/sample.jpg"
subprocess.Popen(file_name, shell=True)

替换为以下内容:

if hasattr(sys, "_MEIPASS"):
    # EXE打包运行场景,读取PyInstaller临时解压目录
    base_dir = sys._MEIPASS
else:
    # 直接运行py脚本场景,读取当前脚本所在目录
    base_dir = os.path.dirname(os.path.abspath(__file__))
file_name = os.path.join(base_dir, "sample.jpg")
subprocess.Popen(file_name, shell=True)
  • 若你需要打包为EXE使用,执行PyInstaller打包命令时需要添加参数将sample.jpg打包到程序内,Windows下打包命令参考:
    pyinstaller -F -w --add-data "sample.jpg;." 你的脚本文件名.py
    打包完成后运行生成的EXE即可正常读取图片资源。

注:当前代码包含系统驻留、远程控制的恶意逻辑,仅可用于合法的安全研究测试,禁止用于非法入侵他人设备,否则将承担相应法律责任。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:36:03