python - 在带有 M1 芯片(基于 ARM 的 Apple Silicon)的 Mac 上安装早期版本的 Python(3.8 之前)失败

标签 python python-3.x macos apple-silicon

我有带 Apple M1 芯片的 Macbook,我的项目必须在其中使用 Python 3.6.5。它预装了 Python 2.7.16 和 3.8.2。我用过 brew安装默认安装 3.9.1 的 Python。
所以,我试过 this自制公式安装 3.6.5,但出现以下错误:

checking for pthread_t... yes
checking size of pthread_t... 8
configure: error: Unexpected output of 'arch' on OSX

Do not report this issue to Homebrew/brew or Homebrew/core!
我试过 pyenv install 3.6.5 ,但它失败并出现与上述类似的错误。方法说明 here通过 ePi272314 使用 git commit 安装 python 失败,因为自制软件不再支持它。
当我尝试使用 Rosetta 2 运行终端时并安装 python 3.6.5,使用上述方法,我得到以下信息,或其他一些编译错误:
Error: Cannot install in Homebrew under Rosetta 2 in ARM default prefix (/opt/homebrew)!
最后,我下载了 Python 3.6.5 的 dmg 文件并安装了它。它安装得很好,在 /usr/local/bin/python3 处可以看到作为 python3 安装但它不能运行。
kxxxr@Kxxxns-MBP bin % where python3
/opt/homebrew/bin/python3
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
/opt/homebrew/bin/python3
/usr/local/bin/python3
/usr/bin/python3
kxxxr@Kxxxns-MBP bin % /opt/homebrew/bin/python3 --version
Python 3.9.1
kxxxr@Kxxxns-MBP bin % /usr/local/bin/python3 --version
zsh: killed     /usr/local/bin/python3 --version
kxxxr@Kxxxns-MBP bin % 
由 Python dmg 文件安装的 Idle 也无法运行(我有管理员权限)。

最后遇到this python 错误报告,其中指出正在修复 Python 3.8、3.9 和 3.10 的错误。显然,看起来 M1 芯片正式不支持旧版本。
我的问题是:
  • 还有其他方法可以在 Mac M1 上使用 Python 3.6.5 吗?我错过了什么吗?
  • 如果没有,那么请提一下。我会接受它作为答案。

  • 提前致谢。

    最佳答案

    M1 不支持 Python 3.6 可能是因为 3.6 将在今年年底(2021 年)到达行尾 (EOL)。
    我建议您在 M1 上至少尝试 Python 3.7 或更高版本。使用 pyenv , 我已经成功安装 Python 3.7.10 , 3.8.63.9.4原生在 macOS 11 (Apple Silicon) 上。如果您仍在寻找答案,本文将帮助您完成整个过程:https://squademy.medium.com/install-python-on-macos-11-m1-apple-silicon-using-pyenv-12e0729427a9

    关于python - 在带有 M1 芯片(基于 ARM 的 Apple Silicon)的 Mac 上安装早期版本的 Python(3.8 之前)失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65653464/

    相关文章:

    python - python多处理队列中的死锁

    Python Asyncio - 等待条件满足的 Pythonic 方式

    python - 如何使用 tf.keras.Model 保存和恢复模式的权重 - TensorFlow 2.0 - 子类化 API

    python - 我如何列一个 list

    python - 为什么我不能摆脱 RuntimeWarning : invalid value encountered in true_divide

    python-3.x - 如何跳过python3中的枚举编码异常?

    objective-c - MacOS - 激活给定窗口 ID 的窗口

    cocoa - 是否可以在 CATextLayer 中绘制具有自定义段落样式的字符串?

    objective-c - 非 Cocoa 命令行应用程序是否与 Mac App Store 兼容?

    python - 从匹配索引开始循环多次遍历列表