2401_84336205 2024-05-06 22:15 采纳率: 33.3%
浏览 15

运行yolov7中的detect.py调用外部摄像头,报错

请问这个是为啥,这是我在跑yolov7的detect.py在调用USB摄像头,所报的错误,求助
GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-06 22:15
    关注

    引自免费微信小程序:皆我百晓生

    看起来你在尝试运行YOLOv7的detect.py脚本来检测来自USB摄像头的视频流,并且遇到了一个关于GTK+库版本冲突的问题。这是一个常见的问题,通常是因为你的系统中同时安装了GTK+ 2.x和GTK+ 3.x版本,导致一些GUI库(比如OpenCV)在加载时产生了混淆。

    要解决这个问题,你需要确保你的系统只使用GTK+ 3.x版本。以下是一些步骤来解决这个问题:

    1. 首先,检查你的系统上是否已经安装了GTK+ 3.x。如果没有,你需要安装它。在Ubuntu或Debian系的Linux上,可以使用以下命令安装:

      sudo apt-get install libgtk-3-dev
      
    2. 如果你已经在系统中安装了GTK+ 3.x,但仍然遇到这个问题,可能是某些依赖项没有正确设置。你可以尝试更新OpenCV的配置,使其优先使用GTK+ 3。这可以通过修改OpenCV的配置文件实现。找到opencv-python包的安装路径,然后打开对应的cv2/pythonic/haarcascades/__init__.py文件。在这个文件中,找到try:部分,添加以下行来指定GTK+ 3:

      try:
          import gi
          gi.require_version('Gtk', '3.0')
          from gi.repository import Gtk, GdkPixbuf
      except ImportError:
          pass
      

      这段代码会尝试导入并要求使用GTK+ 3.0版本。如果没有成功,这段代码会跳过,继续执行下面的代码。

    3. 完成上述更改后,保存并关闭文件。如果你对Python文件结构不熟悉,也可以尝试重新安装OpenCV来覆盖这个文件,确保新版本的__init__.py包含上述更改。在终端中运行:

      pip uninstall opencv-python
      pip install opencv-python
      
    4. 最后,尝试再次运行detect.py脚本,看是否解决了问题。如果还有其他问题,可能需要检查你的环境变量设置,确保它们指向正确的GTK+ 3路径。

    按照以上步骤操作应该能解决GTK+版本冲突的问题,让你顺利地从USB摄像头运行YOLOv7的detect.py脚本。如果你在操作过程中遇到任何困难,或者有其他问题,请随时告诉我。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月6日

悬赏问题

  • ¥15 react-diff-viewer组件,如何解决数据量过大卡顿问题
  • ¥20 遥感植被物候指数空间分布图制作
  • ¥15 安装了xlrd库但是import不了…
  • ¥20 Github上传代码没有contribution和activity记录
  • ¥20 SNETCracker
  • ¥15 数学建模大赛交通流量控制
  • ¥15 为什么我安装了open3d但是在调用的时候没有报错但是什么都没有发生呢
  • ¥50 paddleocr最下面一行似乎无法识别
  • ¥15 求某类社交网络数据集
  • ¥15 靶向捕获探针方法/参考文献