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
相关产品推荐
相关产品推荐

