|
发表于 2025-5-15 11:36:27
|
显示全部楼层
解决方案:跨电脑运行PyInstaller打包的exe
问题原因:
直接复制dist/build/.spec文件夹到其他电脑无法运行,通常是因为:
- 缺少必要的系统依赖(如VC++运行库)
- 未正确打包外部文件(如模型、图片等)
- 路径问题(代码中使用了绝对路径)
正确操作步骤:
1. 精简文件传输
只需复制dist文件夹内的内容到目标电脑即可,build/.spec是编译过程文件无需复制。
2. 检查系统依赖
目标电脑需安装:
- Visual C++ Redistributable(2015+版本)
- 若涉及GPU运算需安装对应驱动
下载地址:https://aka.ms/vs/16/release/vc_redist.x64.exe
3. 处理外部资源文件
若程序依赖模型/配置文件(根据报错推测你用了MediaPipe模型),打包时需用--add-data参数:
- pyinstaller --add-data "model.tflite;." --add-data "labels.txt;." your_script.py
复制代码
4. 路径修正技巧
在代码中访问资源文件时,应使用以下方式获取正确路径:
- import sys
- import os
- def resource_path(relative_path):
- try:
- base_path = sys._MEIPASS
- except Exception:
- base_path = os.path.abspath(".")
- return os.path.join(base_path, relative_path)
- # 使用示例
- model_path = resource_path("model.tflite")
复制代码
5. 推荐打包方式
使用单文件模式打包:
- pyinstaller --onefile --add-data "model.tflite;." your_script.py
复制代码
注意事项:
- 目标电脑的Windows版本不宜过旧(建议Win10以上)
- 关闭杀毒软件(可能误报拦截)
- 若使用深度学习模型,确保目标电脑有足够内存
- 日志中的WARNING通常不影响运行,属于MediaPipe框架的常规提示
如果仍有问题,建议重新打包时添加--debug all参数查看详细运行日志。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|