python-3.x - 在树莓派上运行 Qt 应用程序
问题描述
我能够在树莓派上安装 PyQt5。但无法运行 python 脚本。我确实收到以下错误 ModuleNotFoundError: No module named 'PyQt5.QtQml'
当我执行命令 pip list 时,我得到以下信息包版本
pip 21.3 pkg_resources 0.0.0 PyQt5 5.15.5 PyQt5-sip 12.9.0 setuptools 40.8.0
下面是一个简单的python脚本
import sys
from PyQt5.QtGui import QGuiApplication
from PyQt5.QtQml import QQmlApplicationEngine
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.quit.connect(app.quit)
engine.load('main.qml')
sys.exit(app.exec())
以下是main.qml文件
import QtQuick 2.15
import QtQuick.Controls 2.15
ApplicationWindow {
visible: true
width: 600
height: 500
title: "HelloApp"
Text {
anchors.centerIn: parent
text: "Hello World"
font.pixelSize: 24
}
}
我正在使用 python 3.7.3 版我创建了虚拟环境并将其激活如下:
python3 -m venv testEnv
source testEnv/bin/activate
我使用命令 pip3 install pyqt5 在环境中安装了 pyqt5
我尝试通过给出命令进行安装
pip3 install pyqt5-tools
这花了很多时间,看起来它正在下载所有可用的版本。然后我尝试了以下命令
pip3 install pyqt5-tools~=5.15.4.3.2
执行以下命令时,出现以下错误。
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting pyqt5-tools~=5.15.4.3.2
Using cached pyqt5_tools-5.15.4.3.2-py3-none-any.whl (29 kB)
Collecting pyqt5==5.15.4
Using cached PyQt5-5.15.4.tar.gz (3.3 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata (pyproject.toml) ... done
ERROR: Could not find a version that satisfies the requirement pyqt5-plugins<5.15.4.3,>=5.15.4.2.2 (from pyqt5-tools) (from versions: none)
ERROR: No matching distribution found for pyqt5-plugins<5.15.4.3,>=5.15.4.2.2
我们如何检查需要安装哪个版本的 pyQt5-tools?
解决方案
这里的问题是您正在使用 pyqt5 库,同时您正在使用 qml 文件,该文件是不同的语言并且具有不同的库和依赖项,有 2 种情况案例 1:如果您运行 raspbian buster:您需要下载源代码Qt 来自他们的站点,它的配置和编译并从源代码构建它并最终安装它(建议使用 Qt 5.12.10,因为您将 python 与 qml 一起使用)(在 google 中搜索如何在 rapberry pi 上安装 qt 5.12.10,因为它是过程很长而且有点困难),然后你就可以运行你的代码了。案例 2:如果您运行新的 raspbian Bullseye 2022,那么它非常简单,您只需使用此处显示的命令安装它:Bullseye OS
$ sudo apt-get install qtbase5-dev qtchooser.
$ sudo apt-get install qt5-qmake qtbase5-dev-tools.
$ sudo apt-get install qtcreator.
$ sudo apt-get install qtdeclarative5-dev.
它将安装新的 qt 版本 5.15.2,您可以使用 python 和 qml。
推荐阅读
- python - geopandas中的GIS距离测量单位
- javascript - 如何检查对象报告控件数组上的列类型上是否存在值?
- node.js - Node-Red mongodb3 使用环境变量中的 URL 连接数据库
- python - 我想展示我的文章 - 最新文章应该首先出现
- php - 如何在 php 中回显嵌套的 json?
- c# - Azure 将文件从源文件夹复制到目标文件夹
- android - ClassCastException:调用 startActivity 后,MyFragment 无法转换为 android.app.Activity
- android - Flutter VSCode:调试错误:无法使用 BuildSessionServices.createFileHasher() 创建 FileHasher 类型的服务
- javascript - 如何区分经过身份验证的用户?
- api - 使用 user_id='' 调用 GET statuses/user_timeline 似乎调用了 GET statuses/home_timeline。为什么?