こんばんはエンジニアの眠れない夜です。
pyenv installで zlib not available が出た時の対策方法を紹介します。
環境はmacOS Mojave 10.14.6です。
一般的なzlib not availableの解決方法
原因はこちらのブログにあるように
XcodeのCommand Line ToolsにmacOS Mojave 10.14用のmacOS SDKヘッダがインストールされていないからです。
だそうです。
以前、Xcodeは入れたので入っているものと思っていましたが、確認してみるとopenのところをクリックすると何やらインストールしろと言われました…
その後一応OSのアップデートを確認して
普通ならターミナルでこちらのコマンドを実行すると直るみたいです。
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
しかし、私の環境ではファイルが無い言われました。なんで(゜o゜;?
open /Library/Developer/CommandLineTools/
でディレクトリを開いて見てみると、Packagesフォルダがありませんでした。
この辺りから参考にしている記事や他の記事と状態が違うところですね…
Packagesが無い時の直し方
まずはzlib
をインストールします。
brew install zlib
既にインストールされていると出ました。
ということで、パスの設定をします。
export LDFLAGS="-L/usr/local/opt/zlib/lib"
export CPPFLAGS="-I/usr/local/opt/zlib/include"
それからpyenv install PYTHON_VERSION
を入力します。
pyenv install 3.7.2
これで無事にインストールできました!
このままだと再起動すると設定が消えてしまうので、 ~/.bash_profile
に
export LDFLAGS="-L/usr/local/opt/zlib/lib"
export CPPFLAGS="-I/usr/local/opt/zlib/include"
を追記しておきましょう。
まとめ
結局の所、pyenvを使ったときにzlibにパスが通っていなかったという落ちでした。
色々、回り回って到達したのでなかなか苦戦しました…(;´Д`)
途中でOSのアップデートをしていますがそこは無くても大丈夫だと思います。
これでMacでzlib not available
に苦しめられる人が一人でも減りますように(^人^)
めちゃくちゃ助かりました! ありがとうございます。
kuさん
お役に立ててよかったです^^