LoginSignup
10
9

More than 3 years have passed since last update.

pyenv install 3.x.x で error: C compiler cannot create executables

Last updated at Posted at 2021-02-09

忙しい人向け

細かいことはいいから結論が知りたい人向けに先に結論を記載します。
解決法3 xcode-betaのインストールと適用 で筆者は解決しました。

はじめに

久々にPythonで遊ぼうと思ってpyenvでPython3系をインストールしようと思ったらハマって1時間かかったのでメモとして残します。

開発環境

  • OS: macOS Big Sur 11.2
  • pyenv: 1.2.22

事象


$ brew install pyenv

実行後にバージョンを指定してPythonをインストールしようとするとタイトルのエラーが発生
します。
筆者の場合は3.9.1をインストールしようとしてエラーになりました。


$ pyenv install 3.9.1

~中略~

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

Inspect or clean up the working tree at /var/folders/k6/z1nv88hn50lbyt0jk334wlqr0000gn/T/python-build.20210208220628.20206
Results logged to /var/folders/k6/z1nv88hn50lbyt0jk334wlqr0000gn/T/python-build.220210208220628.20206.log

Last 10 log lines:
checking for python3.9.1... python3.9.1
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... "darwin"
checking for gcc... clang
checking whether the C compiler works... no
configure: error: in `/var/folders/k6/z1nv88hn50lbyt0jk334wlqr0000gn/T/python-build.20201015235728.20206/Python-3.9.1':
configure: error: C compiler cannot create executables
See `config.log' for more details

エラーは解決後に再現できなかったのでうろ覚えだがこんな感じだったはず...!

対処法

その1 pyenvを再インストールしてみる

色々調べてみるとpyenvを再インストールすることで解決した事例もあるようなので半信半疑で試してみる


$ brew uninstall pyenv
$ brew install pyenv
$ pyenv install 3.9.1

~中略~

configure: error: C compiler cannot create executables
See `config.log' for more details

まあそりゃそうだよねー。
解決するはずもないので対処法2へ

対処法2 command line tools for xcode の確認

なんとなくエラー文から推測するにCコンパイラがおかしそうなので、command line tools for xcodeが入っているかと、xcodeが最新版になっているかを確認してみる。

$ xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
$ softwareupdate --list
Software Update Tool

Finding available software
No new software available.

コマンドラインツールはちゃんと入ってる(brewが動いているので当然ではあるが)し、
Xcodeのアップデートも確認したが最新版になっている。
念の為macOSのアップデートも確認したが、(2020/02/09現在)最新版になっている。
解決しないので解決法3へ

解決法3 xcode-betaのインストールと適用

最終的にこちらの
Python 3.9.0、3.8.6を pyenv を使って macOS BigSur にインストールする
を参考にして解決しました!

色々調べてみるとどうやらmacOSのバージョンが新しすぎてXcodeが対応していない(ここの理解は自信ないので間違っていればコメントで補足ください)ようなので、上の記事を参考にXcodeのベータ版を入れて対応する。

  1. Beta Software Downloads よりXcode-betaのダウンロードをする。(要Apple ID)
  2. 1でダウンロードしたXcode-betaを開き、Prefarence->Locationsへ
  3. Command Line Tools を1でダウンロードしたバージョンに変更

ここまでできたら

$ LDFLAGS="-L$(xcrun --show-sdk-path)/usr/lib" pyenv install 3.9.1

とやれば

$ pyenv versions
system (set by /usr/local/var/pyenv/version)
  3.9.1

$ pyenv global 3.9.1
$ zsh -l
$ python --version
Python 3.9.1

結果

:tada:無事Python3系がインストールできた:tada:

参考

Python 3.9.0、3.8.6を pyenv を使って macOS BigSur にインストールする
Macのpyenvでconfigure: error: C compiler cannot create executables

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9