当前位置: 代码迷 >> 综合 >> 如何使用 pyenv 进行 Python 多版本管理(以 Python-3.7.2 为例)macOS Mojave
  详细解决方案

如何使用 pyenv 进行 Python 多版本管理(以 Python-3.7.2 为例)macOS Mojave

热度:111   发布时间:2023-11-13 17:09:23.0

一、安装 Homebrew

在终端输入下列代码:

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

如果要检测 Homebrew 是否安装成功,在终端输入:
brew -v

若安装正确,终端中会显示当前安装的 Homebrew 版本信息:

在这里插入图片描述
升级到新版本的 Homebrew:
brew update

安装软件包:
brew install XXXX

更新软件包:
brew upgrade XXXX

如果不写具体的软件包就是更新所有可更新的软件包。

二、安装 pyenv

在终端输入下列代码:
brew install pyenv

检测 pyenv 是否安装成功,在终端输入:
pyenv -v

若安装正确,终端中会显示当前安装的 pyenv 版本信息:
在这里插入图片描述

1.编辑 .bash_profile 文件

切换到用户的 Home 目录,在终端输入:
cd ~

打开 .bash_profile 文件,在终端输入:
open .bash_profile

若文件不存在,创建 .bash_profile 文件,在终端输入:
touch .bash_profile

打开并编辑 .bash_profile 文件,在终端输入:
open -e .bash_profile

在弹出的 .bash_profile 文件中增加以下内容,并按 command + s 保存文件:
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
在这里插入图片描述

使用更新之后的 .bash_profile 内容,在终端输入:
source .bash_profile

2.安装 zlib 依赖

笔者还不清楚zlib依赖具体是做什么的,大概就是一个解压缩工具?

brew install zlib

将 zlib 的头文件及库文件添加至系统默认的路径,如果更新 zlib 版本记得重新添加,否则可能会出现问题:
ln -s /usr/local/Cellar/zlib/1.2.8/include/* /usr/local/include
ln -s /usr/local/Cellar/zlib/1.2.8/lib/* /usr/local/lib

三、安装Python

通过 pyenv 查看可安装的 Python 版本,在终端输入:
pyenv install --list
在这里插入图片描述
通过 pyenv 安装所需版本的 Python,在终端输入:
pyenv install <version>

以安装 Python-3.7.2 为例,在终端输入:
pyenv install 3.7.2

通过 pyenv 查看已安装过的 Python 版本,在终端输入:
pyenv versions

若安装正确,终端中会显示当前安装的 Python 版本信息:
在这里插入图片描述

解决可能会出现的“*** [install] Error 1”错误

注:如果没有出现此错误请跳过此步骤

在执行通过 pyenv 安装所需版本的 Python 命令行后,可能会出现以下错误:

zipimport.ZipImportError: can't decompress data; zlib not available 
make: *** [install] Error 1

下载并安装命令行工具,在终端输入:
xcode-select --install

再次使用 pyenv 安装所需版本的 Python,在终端输入:
pyenv install <version>

以安装 Python-3.6.0 为例,在终端输入:
pyenv install 3.6.0

通过pyenv查看已安装过的 Python 版本,在终端输入:
pyenv versions

若安装正确,终端中会显示当前安装的 Python 版本信息:

注:系统自带版本的 Python 显示为 system,当前正在使用的 Python 版本前有星号作为标识。

若还是出现问题,则可以去 Apple 官网下载独立的 Xcode 工具,进行手动安装:
https://developer.apple.com/download/more/

四、切换 Python 版本

1.切换全局的 Python 版本

将全局的 Python 切换为指定版本,在终端输入:
pyenv global <version>

以切换至 Python-3.7.2 为例,在终端输入:
pyenv global 3.6.0

检测是否切换成功,在终端输入:
python

若切换成功则显示相应版本 Python,退出 Python 返回终端操作,在“>>>”后输入:
exit(0)

将全局的 Python 切换回系统自带版本,在终端输入:
pyenv global system

2.切换目标目录的 Python 版本

切换到指定的目录,在终端输入:
cd <directory>

以切换至 /Users/caiyutong/Documents/workspace for python 目录为例,在终端输入:
cd /Users/caiyutong/Documents/"workspace for python"

将当前目录下的 Python 切换为指定版本,在终端输入:
pyenv local <version>

以切换至 Python-3.7.2 为例,在终端输入:
pyenv local 3.6.0

检测是否切换成功,在终端输入:
python

若切换成功则显示相应版本 Python,退出 Python 返回终端操作,在“>>>”后输入:
exit(0)

将全局的 Python 切换回系统自带版本,在终端输入:
pyenv local system