pyenv 是一个强大的 Python 版本管理工具,它允许开发者在同一台计算机上轻松安装和管理多个 Python 版本。对于需要在不同项目中使用不同 Python 版本的开发者来说,pyenv 是一个非常有用的工具,因为它可以帮助用户在全局和项目级别控制 Python 版本,避免了版本冲突。
本文将介绍 pyenv 的主要功能、安装方法、使用技巧,并展示如何通过 pyenv 高效地管理 Python 环境。
➰缘起
- 💯 pyenv 的主要特点
- 1. 多版本 Python 安装和切换
- 2. 全局和局部 Python 版本控制
- 3. 安装定制 Python 版本
- 4. 避免系统 Python 污染
- 5. 简单易用的命令行界面
- 💯 安装 pyenv
- 1. 安装依赖项
- 2. 安装 pyenv
- 💯 pyenv 的基本使用
- 1. 查看可用的 Python 版本
- 2. 安装 Python 版本
- 3. 设置全局 Python 版本
- 4. 设置局部 Python 版本
- 5. 查看已安装的 Python 版本
- 6. 卸载 Python 版本
- 💯 高级功能
- 1. 使用 pyenv-virtualenv 管理虚拟环境
- 2. 自动激活虚拟环境
- 3. 升级 pyenv
- 💯 应用场景
- 📥 下载地址
- 💬 结语
- 📒 参考文献
💯 pyenv 的主要特点
1. 多版本 Python 安装和切换
pyenv 允许在同一台机器上安装多个 Python 版本,并根据需要快速切换不同的版本。无论你是需要 Python 2.x 版本的支持,还是正在使用最新的 Python 3.x 版本,pyenv 都能满足你的需求。
2. 全局和局部 Python 版本控制
pyenv 支持为系统设置全局 Python 版本,也支持为每个项目设置局部 Python 版本。这意味着在不同项目中可以使用不同的 Python 版本,而不会相互干扰。
3. 安装定制 Python 版本
除了官方的 Python 版本,pyenv 还支持安装定制版本,例如 Anaconda、PyPy 等。开发者可以根据项目需求选择合适的 Python 版本和解释器,灵活性非常高。
4. 避免系统 Python 污染
通过 pyenv 管理 Python 版本,可以避免修改系统自带的 Python 版本,确保系统和开发环境之间相互隔离。这在需要频繁更改 Python 版本的开发者中非常实用,尤其是在 Linux 和 macOS 系统上。
5. 简单易用的命令行界面
pyenv 提供了简洁易用的命令行界面,开发者可以通过简单的命令来安装、删除、切换和管理 Python 版本,大大简化了版本管理的工作流程。
💯 安装 pyenv
1. 安装依赖项
在安装 pyenv 之前,首先需要确保系统中已经安装了构建 Python 版本所需的依赖项。不同的操作系统依赖项可能不同,以下是在 macOS 和 Ubuntu 上安装依赖项的命令:
-
macOS:
使用 Homebrew 安装依赖项:
brew update brew install openssl readline sqlite3 xz zlib
-
Ubuntu:
使用 APT 安装依赖项:
sudo apt update sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
2. 安装 pyenv
接下来,通过 Git 克隆 pyenv 仓库到本地:
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
然后,将 pyenv 添加到 shell 的初始化脚本中,以便在终端启动时自动加载 pyenv。对于不同的 shell,可以在对应的配置文件中添加以下代码:
-
Bash:
将以下内容添加到
~/.bashrc
中:export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init --path)" eval "$(pyenv init -)"
-
Zsh:
将以下内容添加到
~/.zshrc
中:export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init --path)" eval "$(pyenv init -)"
保存配置文件后,重新启动终端或者运行 source ~/.bashrc
或 source ~/.zshrc
来使更改生效。
💯 pyenv 的基本使用
1. 查看可用的 Python 版本
你可以使用以下命令查看 pyenv 支持安装的所有 Python 版本:
pyenv install --list
该命令会列出所有可以安装的 Python 版本,包括稳定版本、开发版本、旧版本等。
2. 安装 Python 版本
要安装特定的 Python 版本,例如 3.9.7,可以运行以下命令:
pyenv install 3.9.7
安装完成后,pyenv 会将该版本添加到你的本地 Python 版本列表中。
3. 设置全局 Python 版本
如果你希望将某个 Python 版本设置为系统的默认版本,可以使用 global
命令。例如,将 Python 3.9.7 设置为全局默认版本:
pyenv global 3.9.7
这样,所有在系统中运行的 Python 脚本都会使用该版本的 Python 解释器。
4. 设置局部 Python 版本
pyenv 允许你为每个项目设置特定的 Python 版本。在项目目录下运行以下命令,可以为该项目设置一个局部的 Python 版本:
pyenv local 3.9.7
pyenv 会在该项目的目录中生成一个 .python-version
文件,保存局部 Python 版本信息。当你进入该目录时,pyenv 会自动切换到指定的 Python 版本。
5. 查看已安装的 Python 版本
你可以使用以下命令查看当前已安装的 Python 版本:
pyenv versions
该命令会列出所有已经安装的 Python 版本,并标注当前正在使用的版本。
6. 卸载 Python 版本
如果你不再需要某个 Python 版本,可以使用以下命令将其卸载:
pyenv uninstall 3.9.7
💯 高级功能
1. 使用 pyenv-virtualenv 管理虚拟环境
pyenv
还可以与 pyenv-virtualenv
一起使用,用于创建和管理虚拟环境。虚拟环境允许你在不同项目中隔离 Python 包的依赖,避免版本冲突。
首先,通过以下命令安装 pyenv-virtualenv
插件:
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
安装完成后,重新启动终端或运行 source ~/.bashrc
以使更改生效。
使用 pyenv virtualenv
命令创建虚拟环境。例如,创建一个基于 Python 3.9.7 的虚拟环境:
pyenv virtualenv 3.9.7 myenv
要激活虚拟环境,可以运行以下命令:
pyenv activate myenv
要停用当前的虚拟环境,可以运行:
pyenv deactivate
2. 自动激活虚拟环境
pyenv-virtualenv
支持自动激活虚拟环境。当你在项目目录下创建了 .python-version
文件后,pyenv 会在进入该目录时自动激活对应的虚拟环境。你可以使用以下命令设置局部虚拟环境:
pyenv local myenv
每当你进入这个目录时,myenv
虚拟环境就会自动激活,退出目录时虚拟环境会自动停用。
3. 升级 pyenv
要升级 pyenv 到最新版本,可以运行以下命令:
cd $(pyenv root)
git pull
该命令会从 GitHub 拉取最新的 pyenv 代码并更新你的本地版本。
💯 应用场景
-
多项目开发:在不同项目中使用不同的 Python 版本和包依赖,通过 pyenv 和 pyenv-virtualenv,你可以为每个项目配置独立的 Python 环境,避免包版本冲突。
-
测试不同 Python 版本:开发者可以轻松安装和切换多个 Python 版本,帮助测试代码在不同 Python 版本上的兼容性,特别是在开发开源项目时,确保项目支持多个 Python 版本。
-
隔离开发环境:通过 pyenv,你可以避免污染系统的全局 Python 版本,确保开发环境与系统环境分离,这在需要同时维护多个 Python 项目的时候尤为重要。
📥 下载地址
pyenv 最新版 下载地址
💬 结语
pyenv 是一个功能强大且易于使用的 Python 版本管理工具,特别适合需要在多项目中使用不同 Python 版本的开发者。通过 pyenv,你可以轻松安装和管理多个 Python 版本,并在不同项目中自由切换。此外,结合 pyenv-virtualenv,你还可以创建和管理虚拟环境,进一步提升开发效率和环境隔离。
如果你经常需要处理不同的 Python 版本,或者希望更好地管理开发环境,pyenv 无疑是一个值得推荐的工具。
📒 参考文献
- pyenv GitHub仓库