我的代碼使用需要 numpy 的 matplotlib。我使用 pipenv 作為我的環境。當我通過終端和 pipenv shell 運行代碼時,它可以毫無問題地執行。我剛剛為 Apple 芯片安裝了 Pycharm(我有一個 M1),并將我的解釋器設定為使用我之前配置的相同 pipenv 環境。但是,當我嘗試通過 Pycharm(甚至 pycharm 中的終端)運行它時,它會拋出以下錯誤:
Original error was: dlopen(/Users/s/.local/share/virtualenvs/CS_156-UWxYg3KY/lib/python3.8/site-packages/numpy/core/_multiarray_umath.cpython-38-darwin.so, 0x0002): tried: '/Users/s/.local/share/virtualenvs/CS_156-UWxYg3KY/lib/python3.8/site-packages/numpy/core/_multiarray_umath.cpython-38-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e'))
讓我感到困惑的是,我的代碼在通過我的終端使用相同的環境時執行......但是在 Pycharm 上運行時它失敗了?任何見解表示贊賞!
uj5u.com熱心網友回復:
我不確定問題出在哪里,但這似乎與您使用的架構(x86_64)與所需架構(arm64e)不同。嘗試將 Pycharm 解釋器設定為使用與終端 (arm64e) 相同的架構,看看是否能解決問題。
uj5u.com熱心網友回復:
帶有 m1 芯片的 Mac 有一個叫做 Rosetta 的東西。這基本上是在模擬英特爾和 AMD 芯片的架構。當您單擊終端的屬性時,應該有一個使用 Rosetta 打開終端的選項。
我已經遇到了同樣的問題,在每個 IDE 中,您都可以設定是否應該使用仿真(Rosetta)運行腳本。所以你應該看看如何告訴 pycharm 使用 Rosetta。
在首選項-工具-終端下設定“shell路徑”:
env /usr/bin/arch -x86_64 /bin/zsh --login
那應該解決它
uj5u.com熱心網友回復:
問題最終是我安裝的python版本。由于我是從intel升級到M1的,所以python版本也繼承了。下載一個新的 3.10 版本并為其創建一個新的解釋器解決了這個問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/516064.html
