如何中mac上安装多版本python并配置PATH

摘要

mac 默认安装的python是 python3,但是如果我们需要其他python版本时,该怎么办呢?

例如:需要python2 版本,如果使用homebrew安装会提示没有python2。同时使用python --version 会发现commond not found。

所以本文主要解决以下几个问题:

  1. 在mac上如何安装各种版本的python。
  2. 在mac上如何管理多个版本的python。
  3. 在mac上如何切换python版本。
  4. 在mac的终端执行:python --version 提示 commond not found 问题。
  5. 在mac上如何配置环境变量PATH。
  6. 在mac上为什么需要配置PATH。

简介:

为了解决上述问题,我们会使用homebrew 安装 pyenv。pyenv 是一个管理python的工具。pyenv官方地址:https://github.com/pyenv/pyenv。当然python 版本管理工具还有其他各种各类的,大家可以根据自身实际情况决定使用哪个。本文主要使用pyenv。以及解决没有python commnond问题。解释为什么需要配置PATH。PATH的作用等等。

python 官方地址:https://www.python.org/downloads/macos/

安装

python 复制代码
brew install pyenv

如果觉得安装缓慢,或者总是失败可以切换homebrew的镜像源。不适用外网,使用内网。

配置pyenv 的PATH

python 复制代码
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

📢 该配置可在.bash_profile、.zshrc等文件中添加,根据实际情况进行添加。apple 芯片需要在.zshrc添加 。 inter 芯片 是 .bash_profile。

PYENV_ROOT="$HOME/.pyenv"

当你在终端(terminal)中执行pyenv init时会自行配置,就是声明一个变量PYENV_ROOT。$HOME 指的是当前用户根目录。

export PATH="PYENV_ROOT/bin:PATH"

PYENV_ROOT 是指的上一步设置的路径的变量,再加上bin,即指的pyenv的可执行路径。 :PATH 是指在后面追加原来PATH设置的路径,如果不追加会把前面的PATH值给覆盖了。

把pyenv 的可执行路径设置到shell查找路径中。当执行pyenv时,会按照所配置的路径进行查找可执行文件。

eval "$(pyenv init -)"

  1. 设置环境变量:它会设置必要的环境变量,包括 PYENV_ROOT,该变量指定 Pyenv 的根目录,通常设置为 Pyenv 安装的目录。

  2. 启用 Pyenv shims:Pyenv 使用一个称为 "shim" 的机制来拦截并重定向 Python 命令。pyenv init 会确保这些 shims 位于 Shell 的 PATH 中,以便 Pyenv 可以拦截和解析您运行的 Python 命令,以确保使用正确的 Python 版本。

  3. 提供版本管理功能:它启用版本管理功能,允许您使用 pyenv global、pyenv local 和 pyenv shell 等命令来选择和切换不同的 Python 版本。

重新加载 .zshrc

python 复制代码
source  ~/.zshrc

📢 .zshrc 文件主要是为了shell与系统进行会话时,会根据.zshrc配置查找对应的执行文件。

修改.zshrc 后,配置生效的方式主要有三个:

  1. 在终端执行 source ~/.zshrc 指令,会重新加载.zshrc ,是配置立即生效。
  2. 关闭当前终端,重新打开一个新的终端,也可以使新的配置生效
  3. 电脑开机时,会自动执行 .zshrc , 使配置生效。

检验 pyenv

python 复制代码
pyenv -v

安装 python

  • 显示可安装的版本
python 复制代码
pyenv  install  -l   
  • 安装指定python
python 复制代码
pyenv  install 3.9.1

切换版本

  • 全局切换
python 复制代码
pyenv global 3.9.1
  • 局部切换
python 复制代码
pyenv local 3.9.1

局部安装python,在不同项目中需要使用不同的python时非常有用。在当前项目目录下,会在当前根目录下自动生成一个.python-version文件。

查看python版本

python 复制代码
python --version
python 复制代码
python
  • 输出

查看pyenv 相关指令

python 复制代码
pyenv help

pyenv 相关API

--version 查看pyenv版本号

global 全局设置python

init 启用pyenv的 配置

install 安装python

local 设置局部python版本

uninstall 卸载python

version 查看当前设置的python版本

version-name 当前使用的python 名字

versions 列出pyenv可用的所有Python版本

which 显示指定python 的完整可执行路径

相关推荐
周小董2 天前
[1379]mac安装nvm
macos
bossjuemfc2 天前
不记得文件名时,Mac 上的搜索还能怎么做?
macos
2501_915909062 天前
Windows 打开 Xcode 工程,编译调试 Xcode 项目并和 Mac 同事协作
ide·windows·vscode·macos·ios·个人开发·xcode
请为小H留灯3 天前
Mac 常用操作与维护技巧
macos·电脑·清理电脑·常用技巧
hantmac3 天前
不记得文件名时,Mac 上的搜索还能怎么做?
人工智能·macos
这是谁的博客?3 天前
AI 加速器 RTL 数字系统设计深度解析:从 MAC 阵列 Verilog 实现到时序收敛与时钟功耗的芯片落地全链路
人工智能·macos·ai·verilog·数字ic设计·ai芯片·rtl
slacker-kian3 天前
M 系列 Mac 清除顽固的 CorpLink
macos·corplink·m系列
kk_net88993 天前
FSNotes:macOS 和 iOS 上的开源笔记管理器
笔记·其他·macos·ios
zhangfeng11334 天前
com.apple.quarantine 并不是乱码,而是 macOS Gatekeeper 给下载文件自动打上的“隔离属性
macos·策略模式
甘晴void4 天前
我给 Magpie 做了个 macOS 桌宠:106 段动画,请求一多就亮灯
macos·electron·开源·deepseek·桌面宠物·magpie