如何在 M1 Mac 上本地运行 Python 3.9.1?

Posted

技术标签:

【中文标题】如何在 M1 Mac 上本地运行 Python 3.9.1?【英文标题】:How can I run Python 3.9.1 natively on M1 Mac? 【发布时间】:2021-04-10 01:35:31 【问题描述】:

目前使用 Anaconda 和 Xcode 12 似乎是不可能的。通过空闲,它通过 Rosetta 运行。似乎没有讨论这个,所以要么我很天真,要么这对其他人也有用。

Python 说:“从 3.9.1 开始,Python 现在完全支持在 macOS 11.0 (Big Sur) 和 Apple Silicon Macs(基于 ARM64 架构)上构建和运行。一个新的通用构建变体,universal2,现在可在一组可执行文件中原生支持 ARM64 和 Intel 64”https://docs.python.org/3/whatsnew/3.9.html

请帮助新手弄清楚如何利用他最近的冲动购买。

【问题讨论】:

【参考方案1】:

您现在可以通过多种途径安装 python 3.9.1,但目前(2021 年 2 月)在 M1 ARM 架构上的完整 python 数据科学套件最全面的构建环境是通过 miniforge。

例如

brew install --cask miniforge
conda init zsh
conda activate
conda install numpy scipy scikit-learn

【讨论】:

感谢您的回复。问题是关于本地运行,而不是通过 Rosetta 翻译。在 ARM M1 芯片上运行 python 3.9.1,Python 进程在活动监视器中被标记为“英特尔架构”。这似乎是一个编译器问题。如何编译以在 ARM 芯片上本地运行?这通过 Anaconda 和 Xcode 12 发生。 我不确定您是如何设置的。 homebrew installer 确实在 M1 芯片上正确安装了 ARM 版本的 miniforge。 很好用。但问题是你不能在商业环境中使用 Anaconda。 :( 我希望通过常规的 Python 安装很快就能实现,这样我就可以在公司使用我的 Mac Pro。 “不允许在商业环境中使用 anaconda”是什么意思?【参考方案2】:

我正在使用 python3.9.4。我只使用自制软件安装它。

我尝试通过pip3 install pandas安装pandas

花了一些时间,但它已成功安装在我的 M1 Macbook Pro 中。

这是日志

❯ pip3 install pandas

Collecting pandas
  Downloading pandas-1.2.4.tar.gz (5.5 MB)
     |████████████████████████████████| 5.5 MB 855 kB/s
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting numpy>=1.16.5
  Using cached numpy-1.20.2-cp39-cp39-macosx_11_0_arm64.whl
Collecting pytz>=2017.3
  Downloading pytz-2021.1-py2.py3-none-any.whl (510 kB)
     |████████████████████████████████| 510 kB 8.8 MB/s
Collecting python-dateutil>=2.7.3
  Downloading python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
     |████████████████████████████████| 227 kB 10.5 MB/s
Requirement already satisfied: six>=1.5 in /opt/homebrew/lib/python3.9/site-packages (from python-dateutil>=2.7.3->pandas) (1.15.0)
Building wheels for collected packages: pandas
  Building wheel for pandas (PEP 517) ... /

done
  Created wheel for pandas: filename=pandas-1.2.4-cp39-cp39-macosx_11_0_arm64.whl size=9354006 sha256=87fead2b2cacdfdc448c444899dfffca3b82275635ac8d51a39790ede623e342
  Stored in directory: /Users/pks/Library/Caches/pip/wheels/1c/18/1d/96f6fb133a77724bc42fce621a44162d840d037b9289c4a874
Successfully built pandas
Installing collected packages: pytz, python-dateutil, numpy, pandas
Successfully installed numpy-1.20.2 pandas-1.2.4 python-dateutil-2.8.1 pytz-2021.1

【讨论】:

【参考方案3】:

我升级到 3.9.4

    下载 Python 通用安装程序 - https://www.python.org/downloads/mac-osx/

注意:我仍然无法安装 sudo pip install mysqlclient。 我已经添加到

    更新自制软件 - 见https://brew.sh 在 .bash_profile 中将 /opt/homebrew/bin 添加到 PATH(不要忘记获取 .bash_profile) 要么 如果使用 zsh,则将 /opt/homebrew/bin 添加到 .zprofile 中的 PATH(不要忘记获取 .zprofile)

【讨论】:

这是否假设您的 shell 是 bash 而不是 zsh?随着 macos 对 zsh 的更改,我认为我们现在必须更新 .zprofile,而不是 .bash_profile 你是对的!我在 bash 上使用旧脚本,所以必须更新 bash_profile。我更新了答案以包含 .zprofile。【参考方案4】:

您现在可以在 Mac M1(Apple Silicon)上本地安装 Python 3.9.4。我正在使用 pyenv 安装 Python 3.7、3.8 和 3.9 所有原生 ARM。例如,要安装 3.9.4:

$ pyenv install 3.9.4
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.9.4.tar.xz...
-> https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tar.xz
Installing Python-3.9.4...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.9.4 to /Users/squademy/.pyenv/versions/3.9.4

有关安装 pyenv 和多个 Python 版本的完整指南,您可以阅读这篇文章:https://squademy.medium.com/install-python-on-macos-11-m1-apple-silicon-using-pyenv-12e0729427a9。

【讨论】:

自制软件在 arm64 上的稳定性如何? ps +1 for pyenv ? 您的文章是否已发表在更易于访问的地方?该链接被登录到 Medium 阻止

以上是关于如何在 M1 Mac 上本地运行 Python 3.9.1?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 M1 Mac 上运行 querydsl 项目测试?

M1 mac 上的 Android 平台工具

Pip install matplotlib 在 M1 Mac 上失败

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

MAC M1 上python 环境搭建趟坑

在 M1 Mac 上运行 Flutter Doctor 时出错 - 无法找到捆绑的 Java 版本