テクめも

プログラミング関連のちょっとしたTipsなどを書いています。

pyenvでpythonのinstallエラーを解決する

pyenvでpythonをインストールしようとすると以下のようなエラーが発生しつまりましたので、その解決策を忘備録として残しておきます。

pyenv install 3.7.4
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.4.tar.xz...
-> https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz
Installing Python-3.7.4...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk

...

ModuleNotFoundError: No module named 'pyexpat'
make: *** [install] Error 1

MacのCommand Line Toolのバージョンを上げる

github.com

このIssueのコメントでは、Command Line Toolをインストールし直したらいけたとか、バージョンを11にしたらいけたとかありましたので、バージョンを上げています。

pkgutil --pkg-info=com.apple.pkg.CLTools_Executables

で、現在のバージョンを確認すると 10 でした。

package-id: com.apple.pkg.CLTools_Executables
version: 10.2.1.0.1.1554506761
volume: /
location: /
install-time: 1555647017
groups: com.apple.FindSystemFiles.pkg-group

https://developer.apple.com/download/more/?=command%20line%20toolsからから 11 (beta版) をインストールします。

インストール後、 11 になっているのを確認します。

package-id: com.apple.pkg.CLTools_Executables
version: 11.0.0.0.1.1560537986
volume: /
location: /
install-time: 1563027541
groups: com.apple.FindSystemFiles.pkg-group

再度、pyenvでインストールしようとすると別のエラーが発生しました。。

python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.4.tar.xz...
-> https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz
Installing Python-3.7.4...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

...

OpenSSLのパスを通す

OpenSSLのパスが通っていないようなのでパスを通します。

export CFLAGS="-I$(brew --prefix openssl)/include"
export LDFLAGS="-L$(brew --prefix openssl)/lib"

再度、インストールすると、無事成功しました。