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

使用PyInstaller打包时出现ModuleNotFoundError: No module named 'cv2'求助

解决PyInstaller打包时ModuleNotFoundError: No module named 'cv2'的问题

你的问题出在PyInstaller未追踪到torch.hub动态加载的yolov5模块中对cv2的导入,常规--hidden-import参数无法覆盖这种动态依赖场景,可按以下方法解决:

方法1:通过.spec文件配置隐藏导入

  1. 先生成打包配置文件:
    pyi-makespec main.py
    
  2. 打开生成的main.spec,找到hiddenimports列表,添加cv2相关依赖:
    hiddenimports=['cv2', 'opencv-python'],
    
  3. 用配置文件重新打包:
    pyinstaller main.spec
    

方法2:强制收集opencv所有文件

使用--collect-all参数强制打包opencv-python的全部文件,覆盖动态导入的场景:

pyinstaller --collect-all opencv-python main.py

方法3:替换torch.hub动态加载为本地静态导入

将yolov5代码直接集成到项目中,避免动态加载导致的依赖遗漏:

  1. 克隆yolov5仓库到项目目录:
    git clone https://github.com/ultralytics/yolov5.git
    
  2. 修改代码中模型加载的逻辑,替换torch.hub.load为本地导入:
    # 替换原torch.hub.load代码
    from yolov5.models.common import AutoShape, DetectMultiBackend
    from yolov5.utils.general import check_img_size
    
    # 初始化模型
    self.model = DetectMultiBackend('models/captcha.pt', device=device)
    self.model = AutoShape(self.model)
    
  3. 重新执行打包命令,此时PyInstaller可正常追踪到cv2的静态导入。

方法4:验证环境依赖

确保打包使用的Python环境已正确安装opencv-python:

  • 查看已安装包:
    # Windows
    pip list | findstr opencv-python
    # Linux/macOS
    pip list | grep opencv-python
    
  • 未安装则执行:
    pip install opencv-python
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 07:37:13