如何使用 QtWebEngine 在 Raspberry Pi 上安装 PySide2 / PyQt5?
How to install PySide2 / PyQt5 on Raspberry Pi with QtWebEngine?
我知道可以使用以下命令在 Raspbian 上安装 PySide2:
sudo apt-get install python3-pyside2.qt3dcore python3-pyside2.qt3dinput python3-pyside2.qt3dlogic python3-pyside2.qt3drender python3-pyside2.qtcharts python3-pyside2.qtconcurrent python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qthelp python3-pyside2.qtlocation python3-pyside2.qtmultimedia python3-pyside2.qtmultimediawidgets python3-pyside2.qtnetwork python3-pyside2.qtopengl python3-pyside2.qtpositioning python3-pyside2.qtprintsupport python3-pyside2.qtqml python3-pyside2.qtquick python3-pyside2.qtquickwidgets python3-pyside2.qtscript python3-pyside2.qtscripttools python3-pyside2.qtsensors python3-pyside2.qtsql python3-pyside2.qtsvg python3-pyside2.qttest python3-pyside2.qttexttospeech python3-pyside2.qtuitools python3-pyside2.qtwebchannel python3-pyside2.qtwebsockets python3-pyside2.qtwidgets python3-pyside2.qtx11extras python3-pyside2.qtxml python3-pyside2.qtxmlpatterns python3-pyside2uic
但是,这不包括 QtWebEngine,而且我似乎也找不到像 python3-pyside2.qtwebengine 这样的包。 PyQt5 也一样,我可以替代使用,但它也不存在。
所以我的问题是:有什么方法可以在我的 Raspberry Pi (Raspbian 10 "Buster") 上 运行 我的 Python 应用程序,它使用 QtWebEngine ?我还有 6 个 Pi 需要 运行 应用程序。那么,如果唯一的解决方案是从源代码构建,有没有办法在一台机器上构建,然后在不重新编译的情况下将其分发给其他机器?
另一个考虑因素是使用 QWebView 而不是 QWebEngineView,因为它似乎可以通过 QtWebKit 获得,至少对于 PyQt5(包 python3-pyqt5.qtwebkit)。那行得通吗?尽管 QtWebKit 已被弃用,但是否可以解决该问题?我还有一个问题,在我的 windows 机器上,QtWebKit 不包含在 PyQt5 包中,单独的 PyQtWebKit PyPl 包也不工作,所以很难 code/debug 该工具,因为我总是必须先把它移到 raspi 上...所以不管我怎么说,总有一些不方便的地方...
所以我终于自己找到了解决方案。据我了解,您在 Raspberry Pi OS 存储库中找不到 QtWebEngine 的原因是 Pi OS 在所有 Raspberry Pi 上被制作成 运行' s,包括 Pi 1 和 Pi 2,它们分别具有 ARMv6 和 ARMv7 CPU 架构。然而,WebEngine 模块依赖于平台,不再针对 ARMv6/7 进行测试、编译和分发,因此他们不会在 Raspberry Pi OS 的存储库中发布它。幸运的是,我使用的 Raspberry Pi 3 具有 ARMv8,因此可以 从 Debian 存储库 安装 QtWebEngine,它提供 QtWebEngine正是为了那个架构。方法如下:
打开您的 sources.list
文件
sudo nano /etc/apt/source.list
添加以下行 save/close:
deb http://deb.debian.org/debian/ buster main
现在更新您的包裹清单
sudo apt update
您可能会遇到一些关于缺少 public 密钥的错误,我们现在将通过密钥服务器对其进行验证:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
请注意,键 648ACFD622F3D138
是第一个显示在上一步错误消息中的键。它实际上告诉我有 3 个丢失的键,但处理第一个就足以现在再次更新包列表,然后最终能够安装模块。
sudo apt update
sudo apt-get install python3-pyside2.qtwebengine
我显然没有足够的代表发表评论。但编辑上面的源文件应该是
sudo nano /etc/apt/sources.list
我知道可以使用以下命令在 Raspbian 上安装 PySide2:
sudo apt-get install python3-pyside2.qt3dcore python3-pyside2.qt3dinput python3-pyside2.qt3dlogic python3-pyside2.qt3drender python3-pyside2.qtcharts python3-pyside2.qtconcurrent python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qthelp python3-pyside2.qtlocation python3-pyside2.qtmultimedia python3-pyside2.qtmultimediawidgets python3-pyside2.qtnetwork python3-pyside2.qtopengl python3-pyside2.qtpositioning python3-pyside2.qtprintsupport python3-pyside2.qtqml python3-pyside2.qtquick python3-pyside2.qtquickwidgets python3-pyside2.qtscript python3-pyside2.qtscripttools python3-pyside2.qtsensors python3-pyside2.qtsql python3-pyside2.qtsvg python3-pyside2.qttest python3-pyside2.qttexttospeech python3-pyside2.qtuitools python3-pyside2.qtwebchannel python3-pyside2.qtwebsockets python3-pyside2.qtwidgets python3-pyside2.qtx11extras python3-pyside2.qtxml python3-pyside2.qtxmlpatterns python3-pyside2uic
但是,这不包括 QtWebEngine,而且我似乎也找不到像 python3-pyside2.qtwebengine 这样的包。 PyQt5 也一样,我可以替代使用,但它也不存在。
所以我的问题是:有什么方法可以在我的 Raspberry Pi (Raspbian 10 "Buster") 上 运行 我的 Python 应用程序,它使用 QtWebEngine ?我还有 6 个 Pi 需要 运行 应用程序。那么,如果唯一的解决方案是从源代码构建,有没有办法在一台机器上构建,然后在不重新编译的情况下将其分发给其他机器?
另一个考虑因素是使用 QWebView 而不是 QWebEngineView,因为它似乎可以通过 QtWebKit 获得,至少对于 PyQt5(包 python3-pyqt5.qtwebkit)。那行得通吗?尽管 QtWebKit 已被弃用,但是否可以解决该问题?我还有一个问题,在我的 windows 机器上,QtWebKit 不包含在 PyQt5 包中,单独的 PyQtWebKit PyPl 包也不工作,所以很难 code/debug 该工具,因为我总是必须先把它移到 raspi 上...所以不管我怎么说,总有一些不方便的地方...
所以我终于自己找到了解决方案。据我了解,您在 Raspberry Pi OS 存储库中找不到 QtWebEngine 的原因是 Pi OS 在所有 Raspberry Pi 上被制作成 运行' s,包括 Pi 1 和 Pi 2,它们分别具有 ARMv6 和 ARMv7 CPU 架构。然而,WebEngine 模块依赖于平台,不再针对 ARMv6/7 进行测试、编译和分发,因此他们不会在 Raspberry Pi OS 的存储库中发布它。幸运的是,我使用的 Raspberry Pi 3 具有 ARMv8,因此可以 从 Debian 存储库 安装 QtWebEngine,它提供 QtWebEngine正是为了那个架构。方法如下:
打开您的 sources.list
文件
sudo nano /etc/apt/source.list
添加以下行 save/close:
deb http://deb.debian.org/debian/ buster main
现在更新您的包裹清单
sudo apt update
您可能会遇到一些关于缺少 public 密钥的错误,我们现在将通过密钥服务器对其进行验证:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
请注意,键 648ACFD622F3D138
是第一个显示在上一步错误消息中的键。它实际上告诉我有 3 个丢失的键,但处理第一个就足以现在再次更新包列表,然后最终能够安装模块。
sudo apt update
sudo apt-get install python3-pyside2.qtwebengine
我显然没有足够的代表发表评论。但编辑上面的源文件应该是
sudo nano /etc/apt/sources.list