簡體   English   中英

如何在裝有 M1 芯片(ppc64el 架構)的 Mac 上運行 pyqt5?

[英]How can I run pyqt5 on my Mac with M1chip (ppc64el architecture)?

現在。 當我運行它時。 錯誤來了

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,但架構錯誤

經過數小時的反復試驗,我終於能夠解決這個問題。 我成功的配置是:

  1. 使用 Rosetta 2 ( https://dev.to/courier/tips-and-tricks-to-setup-your-apple-m1-for-development-547g ) 打開終端
  2. 使用非自制 python(我的是在 /usr/bin/python3 中)創建虛擬環境
/usr/bin/python3 -m venv env
source env/bin/activate
  1. 升級pip
pip install --upgrade pip
  1. 安裝PyQt5
pip install PyQt5

我需要 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

我最終專門為pyqt5做的是:

brew install pyqt@5

我認為對於版本 4 和 6,這也可能有效。 當我只是簡單地brew install pyqt ,不幸的是沒有用。

請注意,這只是 M1 Macbook

M1s 穩定下來的另一件事是在以 Rosetta 模式啟動的終端中嘗試pip3 install pyqt5 (左鍵單擊 -> 獲取信息 -> 在 Rosetta 中打開)

嘗試在 ARM 架構下安裝 pyqt 如下

arch -arm64 brew install pyqt

在我的情況下,它的工作: arch -x86_64 brew install pyqt所有必需的 pyqt 從 arch -x86_64 開始或從 rosetta 開始(通過模擬器)。

您可以從自制軟件中使用它,這是我發現它在 Mac M1 上工作的唯一方法。

第一的:

  brew install pyqt@5

然后:

brew --cellar
brew link --overwrite python

然后,您必須為 python 創建/添加別名並將其放入您的.zprofile(如果您按 Shift+command+,則位於 Users/username 文件夾中。

這必須指向您的自制 python 安裝位置。

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

這樣,它將 python 與您的自制軟件 python 鏈接,您可以從終端運行 python test.py(您的 Z23EEEB4347BDD755BFC6B7EE93 文件所在的位置)。 無論我如何嘗試安裝 pip,它都只是顯示錯誤並且不起作用。

我希望在沒有Rosetta 的 M1 mac 上安裝 pyqt5。 我將它用作另一個項目的依賴項,我想將其安裝在需要 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

此時我能夠使用來自hombrew的arm64編譯的pyqt5將urh安裝到virtualenv中,不需要Rosetta(也不需要進一步“污染”我的系統站點包),並且它按預期運行(因為問題是關於跑步)。

嘗試在終端中運行pip install PyQt5 --upgrade

我想用 Python3.6 在虛擬環境下運行 PyQt5。
以下程序對我有用。

我的設置是 MBA M1 2020、macOS 11.3.1 和

pyenv versions
>   system
> * 3.6.15
pip -V
> pip 21.3.1 from /Users/username/.pyenv/versions/3.6.15/lib/python3.6/site-packages/pip (python 3.6)

然后簡單地運行:

pip install pyqt5-sip
pip install pyqt5

在終端上(默認一個,而不是帶有 Rosetta 2 的那個)。

我必須在我的 MacM1 PyQt5==5.15.6安裝到現有的虛擬環境中。

使用此處描述的所有方法都不起作用。

所以,我所做的是:

  1. 以 Rosetta 模式打開終端
  2. 導航到我的項目並激活虛擬環境source venv/bin/activate
  3. 安裝package: pip install PyQt5==5.15.6
  4. 在我的項目中打開一個常規終端並確保按照 requirements.txt 安裝了所有內容: pip install -r requirements.txt

現在一切都很順利。

如果有人在安裝 PyQT5 時仍然遇到同樣的問題,我建議您將注意力集中在 PySide6 上。 它與 PyQT5 有 99% 的相似性,並且適用於 MacBook m1。

我已經在互聯網上挖掘了幾個小時,希望找到解決方案,但在下載它們時,MacBook M1 上的 PyQT5 和 PyQT5-tools 模塊似乎有些損壞。

我正在努力在虛擬環境中(使用 python 3.9)中使用 MacOS 12.6(蒙特雷)在 M1 mac 上安裝 PyQt5。 對我有用的最終解決方案是使用 conda 來創建和激活虛擬環境。

conda create --name venv python=3.9 conda activate venv

然后只需使用 conda 安裝 PyQt5 作為 pyqt package 的一部分。

conda install pyqt

PyQt6 現已推出並支持 Apple Silicon:

https://stackoverflow.com/a/75224682/19486832

不支持 conda,但 pip 安裝工作正常:

python -m pip install PyQt6

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM