ギークなエンジニアを目指す男

機械学習系の知識を蓄えようとするブログ

pyenvでBUILD FAILED Inspect or clean up the working tree エラーが出た時の対処方法(macOS Mojava 10.14.2)

f:id:taxa_program:20190211161127p:plain

こんにちは。こんばんは。takapy(@takapy0210)です。

環境構築で少しつまづいたので、備忘です。例のごとく、$で始まる行はコマンドです。

環境

  • モデル:Mac book Pro 15インチ
  • OS:macOS Mojava 10.14.2

pyenvのインストール

$ brew install pyenv

$ which pyenv
/usr/local/bin/pyenv

ここまでは順調にいった。

python3.6.0のインストールでエラー

ここでつまづいた。

$ pyenv install 3.6.0

-> https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
Installing Python-3.6.0...
python-build: use readline from homebrew

BUILD FAILED (OS X 10.14.2 using python-build 20180424)

Inspect or clean up the working tree at /var/folders/3q/fm2nl8kd06sb1zdg3gspkm_w0000gn/T/python-build.20190211141401.17351
Results logged to /var/folders/3q/fm2nl8kd06sb1zdg3gspkm_w0000gn/T/python-build.20190211141401.17351.log

Last 10 log lines:
  File "/private/var/folders/3q/fm2nl8kd06sb1zdg3gspkm_w0000gn/T/python-build.20190211141401.17351/Python-3.6.0/Lib/ensurepip/__main__.py", line 4, in <module>
    ensurepip._main()
  File "/private/var/folders/3q/fm2nl8kd06sb1zdg3gspkm_w0000gn/T/python-build.20190211141401.17351/Python-3.6.0/Lib/ensurepip/__init__.py", line 189, in _main
    default_pip=args.default_pip,
  File "/private/var/folders/3q/fm2nl8kd06sb1zdg3gspkm_w0000gn/T/python-build.20190211141401.17351/Python-3.6.0/Lib/ensurepip/__init__.py", line 102, in bootstrap
    _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
  File "/private/var/folders/3q/fm2nl8kd06sb1zdg3gspkm_w0000gn/T/python-build.20190211141401.17351/Python-3.6.0/Lib/ensurepip/__init__.py", line 27, in _run_pip
    import pip
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1

こんな感じのエラーが出た。

解決方法

xcode-selectの最新バージョン(2354)にMojave用のmacOS SDK headerがデフォルトで入っていないのが原因のようです。

マニュアルで以下をインストールする必要あるので、terminalでコマンドを叩いてあげましょう。

$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
Password:パスワードを入力

installer: Package name is macOS_SDK_headers_for_macOS_10.14
installer: Installing at base path /
installer: The install was successful.

もう一度、pyenvからpython3.6.0をインストール

$ pyenv install 3.6.0

ython-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.6.0.tar.xz...
-> https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
Installing Python-3.6.0...
python-build: use readline from homebrew
Installed Python-3.6.0 to /Users/takapy/.pyenv/versions/3.6.0

無事できました!