如何在 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?的主要内容,如果未能解决你的问题,请参考以下文章
Pip install matplotlib 在 M1 Mac 上失败
在具有 M1 芯片(基于 ARM 的 Apple Silicon)的 Mac 上安装较早版本的 Python(3.8 之前)失败