2020-12-22 [長年日記]

Big Sur+pyenvで素直にビルドできない件 [mac][Python]

(追記) pyenv 1.2.22で解消済み

macOS11ことBig Surですが、pyenvのバージョン1.2.21では pyenv install が素直にできません。

make: * [Modules/posixmodule.o] Error 1 make: * Waiting for unfinished jobs....
1 warning generated.

みたいなエラーが出ます。


https://github.com/pyenv/pyenv/issues/1643
https://github.com/pyenv/pyenv/issues/1737

あたりでディスカッションされています。
(以下に書いた情報は簡単に古くなる性質のものですので、自分の目でissueを確認するのは必須ですよ!)


今のところこんな感じで対応するのがよさそうです。

brew install pyenv zlib bzip2 readline
eval "$(pyenv init -)"
CPPFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(brew --prefix zlib)/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" pyenv install 3.9.0


3.7, 3.8 の場合、無理に古いものを入れるようとすると上記のようにしてもエラーが起こります。今だと 3.7.9 / 3.8.6をインストールするのが吉です。


それではだめな理由があって古いものでエラーになるようなら、以下のコメントを参考に --patch オプションとパッチを使いましょう。
https://github.com/pyenv/pyenv/issues/1643#issuecomment-733531622


Intel CPUの話です。M1 macまだ触ってないです。