vih*_*hou 6 python macos pyqt5 apple-silicon apple-m1
现在。当我运行它时。错误 conmes ImportError: dlopen(/Users/vihanmy/Library/Python/3.8/lib/python/site-packages/PyQt5/QtWidgets.abi3.so, 2): 找不到合适的图像。确实找到了:/Users/vihanmy/Library/Python/3.8/lib/python/site-packages/PyQt5/QtWidgets.abi3.so:mach-o,但架构错误/Users/vihanmy/Library/Python/3.8/lib/ python/site-packages/PyQt5/QtWidgets.abi3.so:mach-o,但架构错误
exe*_*ler 52
经过几个小时的反复试验,我终于能够解决这个问题。我成功的配置是:
/usr/bin/python3 -m venv env
source env/bin/activate
Run Code Online (Sandbox Code Playgroud)
pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)
pip install PyQt5
Run Code Online (Sandbox Code Playgroud)
eja*_*mes 18
我需要 PyQt5 作为 Python 库的依赖项,这对我有用。请参阅此处的原始帖子。
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
Run Code Online (Sandbox Code Playgroud)
Lem*_*ned 14
我最终专门做的pyqt5是:
brew install pyqt@5
Run Code Online (Sandbox Code Playgroud)
我认为对于版本 4 和 6 这也可能有效。不幸的是,当我简单地去时brew install pyqt,这不起作用。
请注意,这仅适用于 M1 Macbook
当 M1s 稳定下来后,要尝试的另一件事是尝试pip3 install pyqt5在以 Rosetta 模式启动的终端中(左键单击 -> 获取信息 -> 在 Rosetta 中打开)
编辑(2022 年 11 月)
看来,如果您不是特别需要 pyqt5,现在可以通过 pip 在 M1/M2 Mac 上轻松安装 pyqt6。
python -m pip install pyqt6
Run Code Online (Sandbox Code Playgroud)
我希望在没有Rosetta 的情况下在我的 M1 mac 上安装 pyqt5。我将它用作另一个项目的依赖项,我想在 venv 中安装该项目,该项目需要 pyqt5 并且无法通过 pipx ( urh) 安装。
不幸的是,目前没有兼容的轮子 ( curl --silent "https://pypi.org/pypi/PyQt5/json" | grep -i arm64),并且尝试在 3.10 上安装失败,并显示AttributeError: module 'sipbuild.api' has no attribute 'prepare_metadata_for_build_wheel'
值得庆幸的是,pyqt5 的自制安装是针对arm64 编译的并且运行良好。
我的步骤是:
$ # Install pyqt5 via homebrew
$ brew install pyqt@5
$ # Note that it's installed in python3.9, not 3.10
$ brew cat pyqt@5 | grep 'depends_on.*python'
depends_on "python@3.9"
$ # Make a python3.9 virtualenv with access to the system's site-packages
$ /opt/homebrew/bin/python3.9 -m venv --system-site-packages .venv
$ source .venv/bin/activate
Run Code Online (Sandbox Code Playgroud)
此时,我可以urh使用 hombrew 中的 arm64 编译的 pyqt5 安装到 virtualenv 中,而不需要 Rosetta(并且不需要进一步“污染”我的系统站点包),并且它按预期运行(因为问题是关于跑步)。
| 归档时间: |
|
| 查看次数: |
2359 次 |
| 最近记录: |