MacOS M1/M2/M3芯片如何安装Python3.6

前言

Mac电脑M芯片安装Python3.6报错。

一般情况下,Mac系统可以使用homebrew来管理安装软件。
brew search搜索发现,最低只能直接安装python@3.7版本。

于是从Python官网下载安装包进行安装,确实也没有报错,安装完成后执行总是killed,不能正常使用。

下载源码编译也不行。

直接使用pyenv版本管理工具进行安装也是提示编译错误。

解决方法

问题的根本原因是:系统安装的openssl版本过高导致。
按照一下步骤可以解决问题:

#Install Rosetta
/usr/sbin/softwareupdate --install-rosetta --agree-to-license

# Install x86_64 brew
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

# Set up x86_64 homebrew and pyenv and temporarily set aliases
alias brew86="arch -x86_64 /usr/local/bin/brew"
alias pyenv86="arch -x86_64 pyenv"

# Install required packages and flags for building this particular python version through emulation
brew86 install pyenv gcc libffi gettext
# 注意一定要安装正确的openssl版本,后续指定的PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA情况下,pyenv安装也会自动安装
brew86 install openssl@1.1
# -------------- change to openssl@1.1 here and others as well ----------+#                                                             ↓
export CPPFLAGS="-I$(brew86 --prefix libffi)/include -I$(brew86 --prefix openssl@1.1)/include -I$(brew86 --prefix readline)/lib"
export CFLAGS="-I$(brew86 --prefix openssl@1.1)/include -I$(brew86 --prefix bzip2)/include -I$(brew86 --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include -Wno-implicit-function-declaration" 
export LDFLAGS="-L$(brew86 --prefix openssl@1.1)/lib -L$(brew86 --prefix readline)/lib -L$(brew86 --prefix zlib)/lib -L$(brew86 --prefix bzip2)/lib -L$(brew86 --prefix gettext)/lib -L$(brew86 --prefix libffi)/lib"

# Providing an incorrect openssl version forces a proper openssl version to be downloaded and linked during the build
export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA=openssl@1.1

# Install Python 3.6.4
pyenv86 install 3.6.4

安装完后可以在目录下设置版本pyenv local 3.6.4,效果如下图
在这里插入图片描述

参考资料

  1. install-python-3-6-on-mac-m1
### 安装和配置Python 3.6于M1 Mac #### 使用Pyenv安装Python 3.6 对于希望灵活切换不同版本Python的开发者而言,在M1 Mac上借助`pyenv`工具来安装特定版本如Python 3.6是一个理想的选择。由于Apple Silicon架构的独特性,设置过程中可能遇到兼容性挑战,因此建议先安装Rosetta 2以确保某些x86软件能顺利运行[^1]。 一旦完成Rosetta 2的部署,下一步便是通过Homebrew获取必要的依赖项以及最新版的`pyenv`。之后利用此工具指定下载并编译目标版本即Python 3.6: ```bash arch -arm64 brew install pyenv pyenv install 3.6.15 ``` 上述命令中的`arch -arm64`前缀用于指示终端采用ARM架构执行后续指令,从而绕过潜在的体系结构冲突问题。 为了使新安装Python版本生效,还需将其路径加入到系统的环境变量中去。这通常涉及到编辑用户的shell profile文件(比如`.zshrc`),添加如下行以便自动加载所选解释器: ```bash echo 'eval "$(pyenv init --path)"' >> ~/.zshrc source ~/.zshrc ``` 至此,已经成功设置了基于`pyenv`管理下的Python 3.6开发环境。 #### 利用Anaconda创建Python 3.6虚拟环境 另一种途径则是依靠Anaconda发行版来进行管理和隔离项目所需的库集合。它不仅简化了多版本共存的需求,还提供了便捷的方式处理科学计算领域常见的第三方扩展包。具体操作为启动Anaconda Navigator图形界面或是直接运用CLI方式建立名为`python36`的新环境,并指明基础镜像应为Python 3.6: ```bash conda create --name python36 python=3.6 anaconda ``` 激活该环境后即可按照常规流程引入其他所需组件,例如线性代数库NumPy等: ```bash conda activate python36 conda install numpy ``` 这种方法特别适合那些倾向于集成化解决方案而非手动调整系统级配置的人群[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值