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

PyInstaller打包Python生成exe缺失pyshadow文件如何解决

修复方案

问题根因

--add-data参数的目标路径配置错误。从报错信息可以看到,pyshadow运行时会固定在临时解压目录的pyshadow/resources/路径下查找querySelector.js,但你之前的参数将文件放到了解压目录根路径(参数中;.的含义就是目标位置为根目录),和库的内置寻址路径不匹配,因此仍然报文件缺失错误。

操作步骤

  • 先确认本地querySelector.js的源文件位置:该文件是pyshadow库的内置资源,默认存放在Python环境的Lib/site-packages/pyshadow/resources/目录下,也可以直接把该文件复制到项目打包工作目录使用。
  • 修改打包命令的--add-data参数,将文件映射到正确的目标路径。Windows环境下源路径和目标路径用分号分隔,目标路径必须和库的寻址路径一致,即pyshadow/resources。
    修正后的完整打包命令参考:
    pyinstaller --onefile --uac-admin --icon="icon_PhoneBot_256.ico" --clean --noconsole --add-data "querySelector.js;pyshadow/resources" main.py
    

    注:原命令中--onefile和-F参数作用完全重复,保留一个即可。

  • 执行打包前,先删除之前生成的build、dist目录和同名.spec文件,避免旧缓存干扰打包结果。

可选稳妥方案

如果命令行参数多次配置不生效,可以直接编辑打包生成的.spec文件,在datas字段按格式添加资源配置:

datas=[
    ('querySelector.js', 'pyshadow/resources')
]

配置完成后直接执行pyinstaller main.spec完成打包即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:45:41