如何使用 M1 芯片在我的 Mac 上运行 pyqt5

Posted

技术标签:

【中文标题】如何使用 M1 芯片在我的 Mac 上运行 pyqt5【英文标题】:How can i run pyqt5 on my mac with M1chip 【发布时间】:2021-04-30 05:25:34 【问题描述】:

现在。当我运行它时。错误导致 ImportError: dlopen(/Users/v/Library/Python/3.8/lib/python/site-packages/PyQt5/QtWidgets.abi3.so, 2): 找不到合适的图像。发现: /Users/v/Library/Python/3.8/lib/python/site-packages/PyQt5/QtWidgets.abi3.so:mach-o,但架构错误 /Users/v/Library/Python/3.8/lib/python/site-packages/PyQt5/QtWidgets.abi3.so:mach-o,但架构错误

【问题讨论】:

显然,M1 芯片太新了,Python 本身并不知道它们发生了什么。我听说过一种叫做“Rosetta”的东西,它可以让你在英特尔 Mac 上运行类似的东西。试试看? 【参考方案1】:

我需要 PyQt5 作为 Python 库的依赖项,这对我有用。见原帖here。

brew install pyqt5
echo 'export PATH="/opt/homebrew/opt/qt@5/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/opt/homebrew/opt/pyqt@5/5.15.4_1/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

【讨论】:

【参考方案2】:

您可以从自制软件中使用它,这是我发现它在 Mac M1 上工作的唯一方法。

第一:

  brew install pyqt@5

然后:

brew --cellar
brew link --overwrite python

然后您必须为 python 创建/添加一个别名并将其放入您的 .zprofile(如果您按 Shift+command+,则位于用户/用户名文件夹中。

这必须指向你的 homebrew python 安装位置。

alias python ='opt/homebrew/bin/python3'

这样它将python与您的自制python链接,您可以从终端运行python test.py(您的python文件所在的位置)。 无论我如何尝试使用 pip install,它都只是显示错误并且不起作用。

【讨论】:

【参考方案3】:

在我的情况下,它的工作:arch -x86_64 brew install pyqt 并且所有必需的 pyqt 都从 arch -x86_64 开始或从 rosetta 开始(通过模拟器)。

【讨论】:

【参考方案4】:

经过数小时的反复试验,我终于能够解决这个问题。我的成功配置是:

    使用 Rosetta 2 (https://dev.to/courier/tips-and-tricks-to-setup-your-apple-m1-for-development-547g) 打开终端 使用非自制python(我的在/usr/bin/python3)创建虚拟环境
/usr/bin/python3 -m venv env
source env/bin/activate
    升级点子
pip install --upgrade pip
    安装 PyQt5
pip install PyQt5

【讨论】:

在 Rosetta 模式下运行终端对我有用 - 谢谢 试图让这个工作从一天开始!该死的,谢谢伙计:) 这对我有用。为什么通过自制软件安装的 python 不起作用? 如果它与 Rosetta 一起安装,它仍然可以与原生 M1 python 一起使用吗?几天前我刚拿到我的 m1 MacBook Pro,如果这是一个愚蠢的问题,我深表歉意。【参考方案5】:

我最终专门为pyqt5 做的是:

brew install pyqt@5

我认为对于版本 4 和 6,这可能也适用。当我简单地去brew install pyqt 时,不幸的是没有用。

请注意,这只是 M1 Macbook

在 M1 稳定下来后,要尝试的另一件事是在以 Rosetta 模式启动的终端中尝试 pip3 install pyqt5(左键单击 -> 获取信息 -> 在 Rosetta 中打开)

【讨论】:

【参考方案6】:

尝试在ARM架构下安装pyqt如下

arch -arm64 brew install pyqt

【讨论】:

以上是关于如何使用 M1 芯片在我的 Mac 上运行 pyqt5的主要内容,如果未能解决你的问题,请参考以下文章

【M1芯片Mac】Nuxt构建太慢

mac Big Sur 芯片m1上安装ps,窗口里没有扩展,用不了插件了怎么办?

mac m1芯片如何使用gpu

如何在 mac M1(Apple 芯片)上使用 google_sign_in api 进行开发

m1进入恢复模式很慢

应用程序 Spyder 启动可能产生错误 Mac M1 芯片