7
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Organization

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

忙しい人向け

細かいことはいいから結論が知りたい人向けに先に結論を記載します。
解決法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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
7
Help us understand the problem. What are the problem?