Arm64 安装 PyQt5/6,只能选 conda 吗?

10 小时 31 分钟前
 ASLant

公司一直用 jetson orin nano 和 NX 设备开发案例,但是需要使用 Python + Qt ,目前一直采用 miniconda3 来安装 PyQt5 这个库,无法使用 pip 直接编译安装,我认为性能是完全够的,8G 内存,但是编译安装 Qt 还是失败。但是 miniconda 有点臃肿,能用是能用,但是不好用,X86 设备都改成了 uv 统一管理,因为开发的案例涉及到环境重置等,uv 和 poetry 这种比较好,可以 100%还原依赖。conda 导出的 yaml 有时候也是会抽风,总是漏个包之类的。但是又离不开 PyQt 。所以 还有招吗? apt 安装的全局,好像不太兼容。

在 arm64 上使用 pip 安装编译 PyQt 库,100%失败,pip 也没有 arm64 设备预编译好的 wheel. conda 在 arm64 设备提供预编译好的 pyqt 库,conda install 是可以直接基于当前 Python 版本安装的,不需要编译.

521 次点击
所在节点    Python
13 条回复
sivacohan
10 小时 22 分钟前
pip 安装失败是头文件不完整吧,你贴个错误日志还有软件源的配置出来看看啊。
ASLant
10 小时 19 分钟前
@sivacohan 稍等,就是跑了半小时 内存占满 被系统直接杀了,不缺任何工具链
ASLant
10 小时 18 分钟前
@sivacohan x86_64 设备同样 8GB 内存,就是完美编译并安装的,搜了很多说 arm64 缺少什么东西 属于硬件架构问题没办法
ASLant
10 小时 2 分钟前
@sivacohan
(demo) user@ubuntu:~/Desktop/demo$ uv pip install pyqt5
Resolved 2 packages in 6ms
Building pyqt5==5.15.2
Built pyqt5-sip==12.17.1
⠹ Preparing packages... (1/2)
半小时左右,直到 8GB 内存占满,被系统直接杀死,试了多个 python 版本。x86 设备上 10 分钟左右就编译安装好了。也是 8G ,
user@ubuntu:~/Desktop/demo$ neofetch
.-/+oossssoo+/-. user@ubuntu
`:+ssssssssssssssssss+:` -----------
-+ssssssssssssssssssyyssss+- OS: Ubuntu 20.04.6 LTS aarch64
.ossssssssssssssssssdMMMNysssso. Host: NVIDIA Orin Nano Developer Kit
/ssssssssssshdmmNNmmyNMMMMhssssss/ Kernel: 5.10.216-tegra
+ssssssssshmydMMMMMMMNddddyssssssss+ Uptime: 4 days, 16 hours, 47 mins
/sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Packages: 2009 (dpkg)
.ssssssssdMMMNhsssssssssshNMMMdssssssss. Shell: bash 5.0.17
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ Resolution: 3840x1080
ossyNMMMNyMMhsssssssssssssshmmmhssssssso Theme: Adwaita [GTK3]
ossyNMMMNyMMhsssssssssssssshmmmhssssssso Icons: Adwaita [GTK3]
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ Terminal: /dev/pts/1
.ssssssssdMMMNhsssssssssshNMMMdssssssss. CPU: ARMv8 rev 1 (v8l) (6) @ 1.510GHz
/sssssssshNMMMyhhyyyyhdNMMMNhssssssss/ Memory: 833MiB / 7451MiB
+sssssssssdmydMMMMMMMMddddyssssssss+
/ssssssssssshdmNNNNmyNMMMMhssssss/
.ossssssssssssssssssdMMMNysssso.
-+sssssssssssssssssyyyssss+-
`:+ssssssssssssssssss+:`
.-/+oossssoo+/-.

pip 软件源是 pypi 官方源
ASLant
10 小时 0 分钟前
@sivacohan 系统信息
user@ubuntu
-----------
OS: Ubuntu 20.04.6 LTS aarch64
Host: NVIDIA Orin Nano Developer Kit
Kernel: 5.10.216-tegra
Uptime: 4 days, 16 hours, 47 mins
Packages: 2009 (dpkg)
Shell: bash 5.0.17
Resolution: 3840x1080
Theme: Adwaita [GTK3]
Icons: Adwaita [GTK3]
Terminal: /dev/pts/1
CPU: ARMv8 rev 1 (v8l) (6) @ 1.510GHz
Memory: 833MiB / 7451MiB
kero991
8 小时 9 分钟前
我说说我遇到的问题,我在 arm64 上 pip 安装 pyqt5 ,会卡住不动。经过详细调试,原因是编译过程中需要确认 qt 的许可证,但 pip 流程中没有导出相关输入输出接口,没有给你输入 y 的机会,所以后台其实卡在交互上。
解决方案也很简单,使用
pip install pyqt5 --config-settings --confirm-license=
通过--config-settings 参数将另一个参数--confirm-license=传递给后台。
当然你也可以使用 pyqt5 源码,然后使用 sip 模块手动编译。实际上 pip 并不是 pyqt 的推荐安装方式。

不过这只是我遇到的问题和解决方案,不一定适合你的情况,仅供参考。
jackOff
7 小时 6 分钟前
要不然试试 pyside6?
Linioi
6 小时 24 分钟前
可以试试 Pixi ,Conda 生态的环境管理工具,rust 编写,可以混合管理 Conda 软件和 pypi 软件(内置 uv 处理),挺轻量好用的。
yolee599
6 小时 19 分钟前
试试交叉编译呢? arm 的设备一般都是用交叉编译的
ASLant
4 小时 48 分钟前
@jackOff pyside 也是 qt 框架,也不行
ASLant
4 小时 48 分钟前
@Linioi 我去看看
ASLant
4 小时 47 分钟前
@yolee599 太麻烦了这个
ASLant
4 小时 47 分钟前
@kero991 好的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1166979

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX