概要
この記事では、macOS で Python 環境を使用している際に発生する mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')
エラーの原因と、その対処法について解説します。特に、Apple Silicon(M1/M2 チップ)を搭載した Mac での Python パッケージのインストールに関する問題に焦点を当てています。
原因
このエラーは、macOS 上で Python のパッケージをインストールした際に、システムのアーキテクチャ(x86_64 と arm64
)が不一致である場合に発生します。具体的には、インストールされている Python やパッケージが Intel(x86_64)
用にビルドされている場合、Apple Silicon(arm64)
環境でこれを実行しようとすると、互換性の問題が生じます。その結果、特定のC拡張モジュールがロードできず、エラーが発生します。
対処法
この問題を解決するためには、arm64
アーキテクチャに対応した形で Python パッケージをインストールする必要があります。そのためには、arch
コマンドを使用して、pip install
を arm64
アーキテクチャ上で実行するように指定します。
# Python の仮想環境を作成し、アクティベートしたあと
arch -arm64 pip install -r requirements.txt
requirements.txt
は、プロジェクトで必要な Python ライブラリの一覧を指定したファイルです。このコマンドを使うことで、Apple Silicon
に適したパッケージがインストールされ、アーキテクチャの不一致によるエラーが解消されます。
参照