如何在M1 arm64架构上安装PyQt5?

4
我有一台M1 Mac电脑,但是我注意到当本地Python运行任何自动化脚本(例如PyAutoGui)时,它会逐渐变得越来越慢,几乎像是被限制了一样。
我创建了一个Miniforge3环境,可以利用苹果的芯片,使脚本运行得更快,更一致,就像在Intel Mac上运行一样,但是我在Miniforge3环境下安装PyQt5方面遇到了困难,这似乎是人们遇到的问题,我怀疑这是因为该模块尚未针对arm64进行移植。
所以我想知道,是否可能让PyQt5在环境之外运行,但应用程序的实际线程或函数在运行指向M1芯片的Miniforge3环境内?
还是说,是否可能在Arm64架构上运行的Miniforge3上安装PyQt5?
我已经尝试了所有安装PyQt5的选项。
3个回答

4

由于Miniforge存储库中似乎还没有macOS-arm64版本的PyQt5可用,因此这是一种临时解决方案。

我所做的是:

arch -arm64 brew install pyqt@5
cd /Users/<myusername>/miniforge3/envs/<myenv>/lib/python3.9/site-packages
ln -s /opt/homebrew/Cellar/pyqt@5/5.15.6/lib/python3.9/site-packages/PyQt5 .

这是一种非常麻烦的解决方法,它会在系统范围内安装针对arm64架构编译的PyQt5,并将其链接到miniforge环境中。

由于升级可能会导致PyQt5版本发生变化,因此这种方法很快就会失效。

目前我没有更好的解决办法,很遗憾...


3
更新:现在可以使用PyQt6,并且从6.2版本开始,它完全支持Apple Silicon芯片
但是...
根据this的答案,截至2021年8月,conda还没有提供PyQt6。 经过检查可用的conda软件包后,不幸的是看起来自那时以来情况没有改变。
然而,还有其他安装PyQt的方法。
其中一个我立即成功的方法是:
python3 -m pip install PyQt6

0

如果你使用homebrew安装并指定所需的架构,它就能正常工作。

arch -arm64 brew install pyqt@5

你可以在这里安装Homebrew here

运行Python脚本时,别忘了指定架构。

arch -arm64 python3 script.py

此外,如果您正在使用Anaconda创建虚拟环境,则在创建环境时还需要指定体系结构。
CONDA_SUBDIR=osx-arm64 conda create --name myenv

我不确定这是否是 OP 问题的解决方案,因为我没有在使用 Miniforge3 创建的环境中测试过它,但我可以确认它在 M1 Mac 上的 anaconda 环境内运行良好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接