【问题标题】:Pyenv won't install python 3 on Mac os 11Pyenv 不会在 Mac os 11 上安装 python 3
【发布时间】:2021-02-26 13:27:32
【问题描述】:

尝试在 Mac OS 11.0.1 上安装 Python 3.9.0 pyenv install 3.9.0.

结果:

python-build: use readline from homebrew
Downloading Python-3.9.0.tar.xz...
-> https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tar.xz
Installing Python-3.9.0...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk

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

Inspect or clean up the working tree at /var/folders/n6/q2b78971589bltfczw539flh0000gn/T/python-build.20201114175722.7103
Results logged to /var/folders/n6/q2b78971589bltfczw539flh0000gn/T/python-build.20201114175722.7103.log

Last 10 log lines:
checking for python3... python3
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/n6/q2b78971589bltfczw539flh0000gn/T/python-build.20201114175722.7103/Python-3.9.0':
configure: error: C compiler cannot create executables
See `config.log' for more details
make: *** No targets specified and no makefile found.  Stop.

类似问题中的许多建议似乎都围绕 XCode,但 xcode-select --install 表示已经安装了命令行工具。

任何帮助表示赞赏。

【问题讨论】:

    标签: pyenv


    【解决方案1】:

    我今天遇到了同样的问题,并在潜入config.log 并查看了here 这个帖子之后设法更进一步。

    从 App Store 下载 Xcode 后,我不得不采取相反的方向并执行 sudo xcode-select --switch /Applications/Xcode.app/。如果你运行clang --version,它应该会显示Apple clang version 12.0.0 (clang-1200.0.32.27)

    我能够执行pyenv install 3.9.0 并克服C compiler cannot create executables 错误,但不幸的是它仍然失败。 config.log 这次很大,我看看能不能找到什么。

    编辑:我通过执行以下命令安装了 3.8.0,其中包括找到的补丁 here

    CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" pyenv install --patch 3.8.0 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)
    

    已经有一些 macOS 11.0 合并,但我认为用于 pyenv install 命令的存储库根本还没有更新。不过,这种解决方法目前足以满足我的需求。

    【讨论】:

    • 谢谢,效果很好。我确实注意到,对于 3.7,我需要 patch,而对于 3.9,我不需要(所有标志都足够了)。
    【解决方案2】:

    我已经用这个命令在m1 macbook上成功安装了python 3.6.13。

    CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" pyenv install --patch 3.6.13 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)
    

    【讨论】:

      【解决方案3】:

      检查您的clang 所在位置:

      which clang
      

      它应该在/usr/bin/clang 下的某个地方。 在我以前的情况下,它来自 Miniconda,它被人为地放在命令行 PATH 上。修复这个问题,让 clang 来自 Xcode,这应该会让你在 Mac 上安装 Python。

      【讨论】:

        【解决方案4】:

        在遵循这些enter link description here 安装 Python 3.9.6 后遇到了 OP 发布的相同问题。

        以下是我的环境的规格:

        MacOS 11.4 (Big Sur)
        XCode 12.5.1
        

        为了解决这个问题,我必须:

        1. Command Line Tools to XCode更新为12.5.1(我误以为命令行工具版本是12.5.1,只是因为我的XCode版本是12.5.1)

        2. 安装python:pyenv install 3.9.6

        没有必要安装@Cornelius 回答中提到的补丁。

        我的解决方案改编自here

        【讨论】:

          【解决方案5】:

          我在过时的 MacOS 上尝试使用 pyenv 安装 python 版本时遇到了类似的情况。

          configure: error: C compiler cannot create executables.

          我尝试了以下方法:

          • 已更新至 MacOS 12.1 (Monterey)
          • 通过xcode-select --install 更新了命令行工具
          • 更新了 Brew 和 Pyenv

          虽然我确信这些是必要的步骤,但在我还更新 Xcode 之前,我仍然会收到错误消息。这是一个过时的版本,它不再与 MacOS 12.1 兼容。我相信这是主要问题,因为默认情况下似乎使用了 Xcode 的 Clang 编译器。将 Xcode 升级到 13.2(撰写本文时的最新版本)就成功了。

          【讨论】:

            猜你喜欢
            • 2020-12-02
            • 2016-01-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-12-03
            • 2018-02-05
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多