0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

M2 Mac で asdf による Python インストールが失敗する場合の解決方法

Last updated at Posted at 2025-01-11

問題の概要

M2 Mac環境でasdfを使用してPythonをインストールしようとした際、以下のようなエラーが発生する場合があります:

ld: archive member '/' not a mach-o file in '(...)/Modules/_hacl/libHacl_Hash_SHA2.a'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Modules/_sha2.cpython-312-darwin.so] Error 1

原因

この問題は、Homebrewでインストールされた GNU ツールチェーン(make, coreutils, binutils)が、macOSのネイティブツールチェーンと競合することで発生します。特に、HACL ライブラリのビルド時にこの問題が顕著になります。

解決方法

以下のディレクトリをPATHから削除することで問題が解決します:

/opt/homebrew/opt/make/libexec/gnubin/
/opt/homebrew/opt/coreutils/libexec/gnubin/
/opt/homebrew/opt/binutils/bin/

この解決方法を試すべき状況

以下の条件に該当する場合、この解決方法を試してみることをお勧めします:

  1. M1/M2 Macを使用している
  2. asdfでPythonのインストールを試みている
  3. 特にHACLライブラリ関連のビルドエラーが発生している
  4. makecoreutilsなどのGNUツールをHomebrewでインストールしている

注意点

  • この方法は、GNU ツールチェーンを使用する他のビルドプロセスに影響を与える可能性があります
  • 必要に応じて、特定のプロジェクトでのみPATHを一時的に変更することも検討してください

その他の解決方法が必要な場合

この方法で解決しない場合は、以下の代替案も検討してください:

  1. pyenvの使用
  2. Homebrewで直接Pythonをインストール(brew install python@<バージョン>
  3. miniforge3の使用

まとめ

この問題は、macOSとGNUツールチェーンの競合によって引き起こされます。PATHから特定のGNUツール関連のディレクトリを削除することで、asdfを使用したPythonのインストールが正常に完了するようになります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?