跳转到内容

Pyenv 安装

Pyenv 是一个轻量级的开源 Python 版本管理工具。它通过拦截 python 命令(利用 shims 机制),让你能够在同一台机器上轻松切换并隔离多个 Python 版本(如 3.8, 3.11),且不依赖或污染系统全局自带的 Python。

(注:类似于 NVM 对于 Node.js 的作用。与 Anaconda 不同,它只负责解释器版本管理,不直接管理虚拟环境和包,通常配合 pyenv-virtualenv 或原生 venv 使用。)


通过拉取 GitHub 源码并向 ~/.bashrc 注入劫持路径:

Terminal window
# 1. 克隆代码至主目录
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
# 2. 注入环境变量与垫片 (shims)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
Terminal window
git clone https://github.com/pyenv-win/pyenv-win.git "%USERPROFILE%\.pyenv"

必须手动配置系统环境变量

  • PYENV: %USERPROFILE%\.pyenv\pyenv-win
  • PYENV_ROOT: %USERPROFILE%\.pyenv\pyenv-win
  • PYENV_HOME: %USERPROFILE%\.pyenv\pyenv-win
  • PATH 中追加: %PYENV_HOME%\bin;%PYENV_HOME%\shims;

Terminal window
pyenv install --list # 查看远程官方库中所有可安装的 Python 版本
pyenv install 3.11.6 # 从源码拉取并编译安装指定的版本
pyenv versions # 查看当前机器已安装的所有版本 (* 指示当前激活态)
pyenv uninstall 3.11.6 # 彻底删除指定版本
pyenv which python # 查看当前被激活的 python 解释器的真实物理绝对路径
pyenv commands # 罗列所有支持的子命令

由于 pyenv install 在 Linux 上的底层逻辑是从源码拉取并执行 Make 编译,因此极其容易因宿主机底层 C 库缺失而报错。

4.1. 报错 1: Configure: Error: No Acceptable C Compiler Found in $PATH

Section titled “4.1. 报错 1: Configure: Error: No Acceptable C Compiler Found in $PATH”

系统缺少基础的 GCC 编译套件。

  • 解法 (CentOS/RHEL)

    Terminal window
    yum groupinstall "Development Tools"

4.2. 报错 2: 编译中途提示各种 make 或底层库缺失

Section titled “4.2. 报错 2: 编译中途提示各种 make 或底层库缺失”
  • 解法 (Ubuntu/Debian):在安装任何 Python 版本前,务必先补齐这一套极其完整的 C 底层与算法构建依赖:

    Terminal window
    sudo apt-get update
    sudo apt-get install make build-essential libssl-dev zlib1g-dev \
    libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
    libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev