Mac OS Catalina 通过pyenv 安装和使用任意版本的python


在Mac更新至Catalina之前因为Mac没有集成python3,所以可以使用homebrew安装python3进行管理,但Mac更新至Catalina后开始集成python3,为了不影响系统的python3环境,我们可以直接通过homebrew安装python3就会带来一些冲突问题,这里可以使用pyenv解决。

什么是pyenv

pyenv是一个forked自ruby社区的简单、低调、遵循UNIX哲学的Python环境管理工具, 它可以轻松切换全局解释器版本, 同时结合vitualenv插件可以方便的管理对应的包源.

安装步骤

1.先安装homebrew(已安装的略过)

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2.安装pyenv

brew install pyenv

3.打开终端,一行一行复制粘贴,配置环境变量

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc

echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc

echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc

建议按顺序输入,需要保证第三行是最后输入进去的

4.关闭这个终端,再打开一个新的终端

使用pyenv

# 查看当前版本
pyenv version

# 查看所有版本
pyenv versions

# 查看所有可安装的版本
pyenv install --list

# 安装指定版本
pyenv install 3.8.1

# 如果想让虚拟环境可以使用一些系统框架,可以使用此命令安装制定版本python
PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.8.1

# 安装新版本后rehash一下
pyenv rehash

# 删除指定版本
pyenv uninstall 3.8.1

# 指定全局版本
pyenv global 3.8.1

# 指定多个全局版本, 3版本优先
pyenv global 3.8.1 2.7.14

# 实际上当你切换版本后, 相应的pip和包仓库都是会自动切换过去的

使用python global 3.8.1之后,无论是在终端输入python还是使用vscode等工具都会是3.8.1的python版本了。pip也是自动切换到该环境下的pip。