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

新手上路,请多包涵

我有带有 Apple M1 芯片的 Macbook,我必须在其中为我的项目使用 Python 3.6.5。它预装了 Python 2.7.16 和 3.8.2。我使用 brew 安装默认安装 3.9.1 的 Python。

所以,我尝试 了这个 自制程序来安装 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 ,但失败并出现与上述类似的错误。 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 文件安装的空闲也无法运行(我有管理员权限)。

最后遇到了 这个 python 错误报告,它说错误正在为 Python 3.8、3.9 和 3.10 修复。显然,M1 芯片似乎不会正式支持旧版本。

我的问题是:

  1. 还有其他方法可以在 Mac M1 上使用 Python 3.6.5 吗?我错过了什么吗?
  2. 如果没有,请提及。我会接受这个作为答案。

提前致谢。

原文由 Kundan Kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 3k
2 个回答

在 Rosetta 2 下安装的 Nix 可以解决问题。在运行下面的命令之前我什至没有安装它——请注意显示 Nix 在我请求时正在下载 Python 3.6 的消息。

 # yes, this really is a M1 Mac
charles@macbook-pro ~ % uname -a
Darwin macbook-pro.lan 20.2.0 Darwin Kernel Version 20.2.0: Wed Dec  2 20:40:21 PST 2020; root:xnu-7195.60.75~1/RELEASE_ARM64_T8101 x86_64 i386 MacBookPro17,1 Darwin
charles@macbook-pro ~ % arch
arm64

# ...however, Rosetta was used to install an x86_64 Nix build
charles@macbook-pro ~ % file "$(realpath "$(command -v nix)")"
/nix/store/104sp9zrhmh3jycj32jcyl3f13mysdki-nix-2.3.9/bin/nix: Mach-O 64-bit executable x86_64

# ...and that x86_64 Nix build can install and run an x86_64 Python 3.6
charles@macbook-pro ~ % nix run nixpkgs.python36 -c python
[1 copied (53.7 MiB), 9.3 MiB DL]
Python 3.6.12 (default, Dec 18 2020, 15:32:50)
[GCC 4.2.1 Compatible Clang 7.1.0 (tags/RELEASE_710/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

以上(出于可重复性目的)是通过 nixpkgs 收集的,参考频道 https://nixos.org/channels/nixpkgs-20.09-darwin ,特别是实例 sn5ycj9wkbdmyinvqyg9rn42sw71wqad-nixpkgs-20.09pre245572.f18fbc33930

原文由 Charles Duffy 发布,翻译遵循 CC BY-SA 4.0 许可协议

M1 可能不支持 Python 3.6,因为 3.6 将在今年年底(2021 年)到达行尾 (EOL)。

我建议您至少在 M1 上尝试使用 Python 3.7 或更高版本。 Using pyenv , I’ve succeed install Python 3.7.10 , 3.8.6 and 3.9.4 on macOS 11 (Apple Silicon).如果您仍在寻找答案,本文将帮助您完成整个过程: https ://squademy.medium.com/install-python-on-macos-11-m1-apple-silicon-using-pyenv-12e0729427a9

原文由 Eugene 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题