目次
MacOSのpyenvでpyexpatのエラーが出る対処
No module named ‘pyexpat’のエラーを吐く
$ pyenv install 3.7.5
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.5.tar.xz...
-> https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tar.xz
Installing Python-3.7.5...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
BUILD FAILED (OS X 10.15.1 using python-build 20180424)
Inspect or clean up the working tree at /var/folders/ns/nrd9p6nx01xd_5mvplbrkkzw0000gn/T/python-build.20191129122212.45086
Results logged to /var/folders/ns/nrd9p6nx01xd_5mvplbrkkzw0000gn/T/python-build.20191129122212.45086.log
Last 10 log lines:
File "/var/folders/ns/nrd9p6nx01xd_5mvplbrkkzw0000gn/T/tmp0rbu678z/pip-19.2.3-py2.py3-none-any.whl/pip/_internal/cli/cmdoptions.py", line 24, in <module>
File "/var/folders/ns/nrd9p6nx01xd_5mvplbrkkzw0000gn/T/tmp0rbu678z/pip-19.2.3-py2.py3-none-any.whl/pip/_internal/models/search_scope.py", line 11, in <module>
File "/var/folders/ns/nrd9p6nx01xd_5mvplbrkkzw0000gn/T/tmp0rbu678z/pip-19.2.3-py2.py3-none-any.whl/pip/_internal/utils/misc.py", line 21, in <module>
File "/var/folders/ns/nrd9p6nx01xd_5mvplbrkkzw0000gn/T/tmp0rbu678z/pip-19.2.3-py2.py3-none-any.whl/pip/_vendor/pkg_resources/__init__.py", line 35, in <module>
File "/private/var/folders/ns/nrd9p6nx01xd_5mvplbrkkzw0000gn/T/python-build.20191129122212.45086/Python-3.7.5/Lib/plistlib.py", line 65, in <module>
from xml.parsers.expat import ParserCreate
File "/private/var/folders/ns/nrd9p6nx01xd_5mvplbrkkzw0000gn/T/python-build.20191129122212.45086/Python-3.7.5/Lib/xml/parsers/expat.py", line 4, in <module>
from pyexpat import *
ModuleNotFoundError: No module named 'pyexpat'
make: *** [install] Error 1
環境
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.1
BuildVersion: 19B88
この辺をやってもだめだった
https://qiita.com/karon9/items/875b8a0053fa1c685386
解決方法
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk MACOSX_DEPLOYMENT_TARGET=10.15 pyenv install 3.6.9
SDKROOTを指定してあげることでインストールができる
zshrcなりに登録しておく
eval "$(pyenv init -)"
export PYENV_ROOT="$HOME/.pyenv"
export PATH=$$PYENV_ROOT/bin:$PATH
export PATH=$$PYENV_ROOT/shims:$PATH
alias pyenv="SDKROOT=$(xcrun --show-sdk-path) pyenv"