如何在 Raspberry Pi 上添加缺少的 PyQt5 模块

How can I add a missing PyQt5 modules on Raspberry Pi

我正在使用 PyQt5 版本 5.7、python 3.5.3 和 raspbian。我的问题是,在我的代码中,PyQt5 的一些模块被识别并且没有产生错误,而有些模块会。

我得到的错误:导入错误:无法导入名称'QMultimedia'

那么,为什么 QtCore/Widgets/Gui 会重新识别而不是 QMultimedia?我需要安装一些额外的包吗?我需要重新安装并做一些特别的事情吗?这可能是一个微不足道的问题,但请帮助我。

注:我也试过:from PyQt5 import QtMultimedia

import numpy as np
import sys
from PyQt5 import QtCore
from PyQt5 import QtWidgets
from PyQt5 import QtGui
from PyQt5 import QMultimedia
from PyQt5 import QCameraInfo
from PyQt5 import QVideoWidget
from PyQt5 import QMediaObject
from PyQt5.QtCore import pyqtSignal

class Camera():
    def iniCamera():
        cam = QCamera()
        caminfo = QCameraInfo(cam)
        print (caminfo.description)

        if caminfo.isNull() != True:
           cam = QCamera(caminfo.deviceName())
           print (caminfo.description)

if __name__ == '__main__':

    iniCamera()

检查您的站点包文件夹以查看此包是否确实存在。

如果您在 virtualenv(您应该这样做)的背后工作,请确保它已激活。使用pip3 freeze,查看PyQt5是否安装正确

然后,安装一个 pylint 扩展,这可以帮助你在以后丢失包和其他东西。

如果您安装了 Raspbian pyqt5-devpyqt5-dev-tools 包,这将只提供核心 PyQt5 模块,如 QtCoreQtGuiQtWidgets,等等。对于 QtMultimedia 等其他模块,您必须安装单独的包。

如果您转到 Raspbian Connect Package List, and look in the Python Packages 部分,您会发现以下额外的软件包:

  • python3-pyqt5.qsci
  • python3-pyqt5.qtmultimedia
  • python3-pyqt5.qtopengl
  • python3-pyqt5.qtpositioning
  • python3-pyqt5.qtquick
  • python3-pyqt5.qtsensors
  • python3-pyqt5.qtserialport
  • python3-pyqt5.qtsql
  • python3-pyqt5.qtsvg
  • python3-pyqt5.qtwebchannel
  • python3-pyqt5.qtwebkit
  • python3-pyqt5.qtwebsockets
  • python3-pyqt5.qtx11extras
  • python3-pyqt5.qtxmlpatterns

所以只需使用 apt-get 安装任何你需要的东西。