python版本管理 - pyenv 安装配置

125 阅读2分钟

什么是 pyenv

pyenv 是一个 Python 版本管理工具,允许你在同一台机器上安装和管理多个 Python 版本。它通过修改 PATH 环境变量来切换不同版本的 Python。

核心概念

  • 全局版本: 系统范围内的默认 Python 版本
  • 本地版本: 特定项目目录的 Python 版本
  • Shell 版本: 当前 shell 会话的 Python 版本
  • shims: pyenv 创建的轻量级可执行文件,用于拦截 Python 命令

pyenv 的作用和优势

主要作用

  1. 多版本管理: 在同一系统上安装和使用多个 Python 版本
  2. 项目隔离: 不同项目可以使用不同的 Python 版本
  3. 开发测试: 轻松测试代码在不同 Python 版本下的兼容性
  4. 系统保护: 不会影响系统自带的 Python

优势对比

特性pyenv系统包管理器官方安装包
多版本共存
项目级版本控制
不影响系统Python
易于卸载⚠️
版本切换

安装 pyenv

macOS 安装

方法一:使用 Homebrew(推荐)

# 安装 pyenv
brew install pyenv

# 安装构建依赖
brew install openssl readline sqlite3 xz zlib

方法二:使用安装脚本

curl https://pyenv.run | bash

Linux 安装

Ubuntu/Debian

# 安装依赖
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 python3-openssl git

# 安装 pyenv
curl https://pyenv.run | bash

CentOS/RHEL/Fedora

# 安装依赖
sudo yum groupinstall -y "Development Tools"
sudo yum install -y zlib-devel bzip2-devel openssl-devel \
    ncurses-devel sqlite-devel readline-devel tk-devel \
    gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

# 安装 pyenv
curl https://pyenv.run | bash

配置环境

对于 Zsh (macOS 默认)

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

对于 Bash

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

重新加载配置

# 对于 zsh
source ~/.zshrc

# 对于 bash
source ~/.bashrc

# 或者重启终端
exec $SHELL