Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

taku-0728
2018年新卒入社のエンジニアです。 PHPでLaravel使って求人系サービスや、社内向けツールの開発してます。
dip-net
ディップ株式会社は「バイトル」「はたらこねっと」などの求人情報サービスをはじめ、人工知能専門メディア「AINOW」、スタートアップ専門メディア「スタートアップタイムズ」、アニメなどの舞台を紹介するサイト「聖地巡礼マップ」といった新しい分野のサービスを自社で開発・運営しています。
https://www.dip-net.co.jp/
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