python打包exe解决了mediapipe现在显示报错cvzon有问题???
python打包exe解决了mediapipe现在显示报错cvzon有问题???现在显示报错这个
C:\Users\Administrator>C:\Users\Administrator\Downloads\dist\22\22.exe
Traceback (most recent call last):
File "2.py", line 41, in <module>
File "cvzone\HandTrackingModule.py", line 54, in findHands
cv2.error: OpenCV(4.11.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:199: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
W0000 00:00:1747273608.605678 47492 inference_feedback_manager.cc:114] Feedback manager requires a model with a single signature inference. Disabling support for feedback tensors.
W0000 00:00:1747273608.636043 47492 inference_feedback_manager.cc:114] Feedback manager requires a model with a single signature inference. Disabling support for feedback tensors.
这个是前面的解决过程!!!
求助这个怎么详细操作
https://fishc.com.cn/thread-250368-1-1.html
(出处: 鱼C论坛)
解决MediaPipe打包后cvzone报错的综合方案
根据错误信息,这是典型的资源路径问题和OpenCV摄像头访问异常。建议按以下步骤解决:
[*]添加资源文件打包
打包命令需要包含mediapipe模型文件和cvzone依赖:
pyinstaller --add-data "venv/Lib/site-packages/mediapipe/modules/*;mediapipe/modules" \
--add-data "venv/Lib/site-packages/cvzone/*;cvzone" \
--hidden-import google.protobuf \
your_script.py
[*]代码路径适配
在代码开头添加资源路径处理(以HandTrackingModule为例):
import sys
import os
if getattr(sys, 'frozen', False):
BASE_PATH = sys._MEIPASS
else:
BASE_PATH = os.path.dirname(os.path.abspath(__file__))
detector = HandDetector(
staticMode=False,
maxHands=2,
modelPath=os.path.join(BASE_PATH, "mediapipe/modules/hand_landmark_full.tflite")
)
[*]强制OpenCV版本
在requirements.txt中固定版本:
opencv-python-headless==4.9.0.80
mediapipe==0.10.11
[*]添加摄像头异常处理
在摄像头读取代码段添加保护:
cap = cv2.VideoCapture(0)
if not cap.isOpened():
print("摄像头访问失败!请检查:")
print("[*]摄像头是否被其他程序占用[*]是否连接了虚拟摄像头[*]杀毒软件是否拦截")
sys.exit(1)
验证步骤:
1. 在虚拟环境中测试脚本运行
2. 清理旧的打包文件:rmdir /s /q build dist
3. 使用新参数重新打包
4. 检查dist目录是否包含mediapipe/modules文件夹
常见踩坑点:
[*]使用绝对路径而不是相对路径
[*]未清理旧打包缓存导致配置未更新
[*]杀毒软件拦截摄像头访问(特别是企业版火绒/360)
[*]未禁用虚拟摄像头(OBS Virtual Camera等)
如需进一步调试,可以在代码开头添加:
import logging
logging.basicConfig(level=logging.DEBUG)
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2025-5-15 09:49
解决MediaPipe打包后cvzone报错的综合方案
根据错误信息,这是典型的资源路径问题和OpenCV摄像头访问异 ...
原来是我忘了,连接摄像头了,{:5_109:},现在点exe文件可以运行出来了,那我后面想把这个移动到别的电脑使用,要怎么操作,需要哪些一起打包呢
页:
[1]