我有苹果M1芯片的Macbook,在我的项目中我必须使用Python 3.6.5.它预装了Python 2.7.16和3.8.2.我使用brew安装Python,默认情况下安装了3.9.1.

因此,我try 了this个brew 公式来安装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!

我try 了pyenv install 3.6.5,但失败了,错误与上面类似.用git commit安装python的方法here x ePi272314失败,因为brew 软件不再支持它.

当我try 使用上述方法运行Terminal with 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 % 

Idle installed by Python dmg file cannot run either (I have admin rights).

最后,我看到了this个python bug报告,报告中说python 3.8、3.9和3.10的bug正在修复中.显然,M1芯片似乎不支持旧版本.

我的问题是:

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

提前谢谢.

推荐答案

安装在罗塞塔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收集.

Python-3.x相关问答推荐

根据样本量随机 Select 组内样本

错误2没有这样的文件或目录website_content.txt""

将strid()映射到Pandas DataFrame中的字符串不会更改NaN条目,但仍然声称它们不同?

将数据帧扩展为矩阵索引

我正在try 从 10*3 矩阵中删除随机值并将其变为 10*2 矩阵

基于组/ID从原始数据框中创建两个子数据框

调用 Clear 时 Airflow 会加载新代码吗

计算文档中所有关键字(单词和多词)出现的频率

从 https://www.niftytrader.in/stock-options-chart/sbin 提取 SBIN 股票最大痛苦值的 Python 代码不起作用 - 我错过了什么?

如果集合大于 len(x),则 pandas 在重复的行中拆分集合列

提高时间复杂度的一些建议

在 python pandas 中设置条件和分配新值

为什么 numpy 的 `np.char.encode` 会将一个空的 unicode 数组变成一个空的 `float64` 数组?

使用条件参数为 super() 调用 __init__

通过点和线计算CV2 Homography

Python3 AttributeError:列表对象没有属性清除

Python 3 list(dictionary.keys()) 引发错误.我究竟做错了什么?

Tensorflow:ImportError:libcudnn.so.7:无法打开共享对象文件:没有这样的文件或目录

如何使用请求发送带有标头的 PATCH 请求

十六进制字符串到 Python 3.2 中的带符号整数?