はじめに
macOS Mojaveでpyenv経由でPythonをインストールしようとすると次のようなZipImportError
が発生します。
$ pyenv install 3.7.2
python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.2.tar.xz...
-> https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz
Installing Python-3.7.2...
python-build: use readline from homebrew
BUILD FAILED (OS X 10.14.3 using python-build 1.2.9-19-g7d02b246)
Inspect or clean up the working tree at /var/folders/zd/wbvzn4ls3_xbtv033b0mp3hw0000gn/T/python-build.20190322153042.29836
Results logged to /var/folders/zd/wbvzn4ls3_xbtv033b0mp3hw0000gn/T/python-build.20190322153042.29836.log
Last 10 log lines:
File "/private/var/folders/zd/wbvzn4ls3_xbtv033b0mp3hw0000gn/T/python-build.20190322153042.29836/Python-3.7.2/Lib/ensurepip/__main__.py", line 5, in <module>
sys.exit(ensurepip._main())
File "/private/var/folders/zd/wbvzn4ls3_xbtv033b0mp3hw0000gn/T/python-build.20190322153042.29836/Python-3.7.2/Lib/ensurepip/__init__.py", line 204, in _main
default_pip=args.default_pip,
File "/private/var/folders/zd/wbvzn4ls3_xbtv033b0mp3hw0000gn/T/python-build.20190322153042.29836/Python-3.7.2/Lib/ensurepip/__init__.py", line 117, in _bootstrap
return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
File "/private/var/folders/zd/wbvzn4ls3_xbtv033b0mp3hw0000gn/T/python-build.20190322153042.29836/Python-3.7.2/Lib/ensurepip/__init__.py", line 27, in _run_pip
import pip._internal
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1
解決方法
解決策としてmacOS SDK headersを/
にインストールする方法が載っているサイトが多いのですが、そのインストールの手順は不要です。
既にヘッダーファイルは存在するため、CFLAGS
にmacOS SDK headersのパスを渡してあげればよいです。
$ CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" pyenv install 3.7.2
参考