pythonのpyenv別バージョンのインストール失敗するのを直すやり方

$ 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

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

Inspect or clean up the working tree at /var/folders/fs/yp3b5ks53mvbrgjjfm3s5q7w0000gp/T/python-build.20190915065206.97525
Results logged to /var/folders/fs/yp3b5ks53mvbrgjjfm3s5q7w0000gp/T/python-build.20190915065206.97525.log

“__Py_InitializeFromConfig”, referenced from:
_test_init_from_config in _testembed.o
_test_init_dev_mode in _testembed.o
_test_init_isolated in _testembed.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Programs/_testembed] Error 1
make: *** Waiting for unfinished jobs….
make: *** [python.exe] Error 1

初回実行時のエラー内容。

試したこと

失敗例

brew install zlib

これは関係なかった

brew update

ひょっとしてupdateすれば自動的にうまくいくんでは説、はなかった

pip install pyexpat

binutilsをuninstallした後pyenv install 3.7.4をするとpyexpatがない、と出てきてこれを入れれば、と思ったがこれも無関係でした。

うまくインストールできたやり方

xcode-select –install

xcodeが入ってなければインストールします。

brew uninstall binutils

これが入ってるとうまく行かないらしいので一旦アンインストールしておきます。

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

必要なmacOS_SDK_headerをインストールするコマンド。後にCommandLineToolを入れるので必要かはわかりませんがとりあえずインストールしておいた。

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

CommandLineToolのバージョン情報を表示するコマンド。使用バージョンと合っているか、などのチェックに使います。

肝の部分

https://developer.apple.com/download/more/

ここからコマンドラインツールのバージョンが合っているものをダウンロードインストール、でpyenvでのpythonのインストールがうまくいきました。

コマンドラインツールのインストール

Apple IDでのログインが必要になるので、つい飛ばして他の方法を探りたくなりますがこのコマンドラインツールをインストールするのが正解のようです。

各バージョンの調べ方

Xcodeのバージョン

Xcodeのバージョンを調べる

Xcodeを起動してAbout Xcodeを開くとVersion情報が出てきます。10.3でした。

Macのバージョン

MacOSのバージョンを調べる

りんごマークから「このMacについて」を開くとバージョンが出てきます。10.14.6でした。

この二つのバージョンと合っているコマンドラインツールをインストールします。

バージョンの合っているコマンドラインツールのインストール

macOSのバージョンは10.14.6だったので10.14、Xcodeのバージョンは10.3だったのでこれをダウンロードインストール。

$ 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
Installed Python-3.7.4 to /Users/toru/.pyenv/versions/3.7.4

これでpythonのpyenvが動作するようになりました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です