在 Ubuntu Desktop 20.04 上安装 Python 3.12.7

需要特别注意:Ubuntu 20.04 的官方软件仓库默认提供的 Python 版本是 3.8。要安装更新的 Python 3.12.7,您需要从外部源或源代码进行安装。

以下是几种推荐的方法:


⚠️ 重要提示

  • 不要替换系统 Python:Ubuntu 系统本身依赖于其默认的 Python 版本(3.8)。请不要试图替换 /usr/bin/python3 这个系统链接。您应该将新版本安装到 /usr/local 或使用版本管理器,并通过 python3.12 命令来调用。
  • 建议使用版本管理器:对于开发环境,强烈推荐使用 pyenv 来管理多个 Python 版本,避免冲突。

方法一:使用 pyenv (强烈推荐)

pyenv 是管理多个 Python 版本的最佳工具,它允许您在用户级别安装和切换不同版本,不影响系统 Python。

  1. 安装依赖项

    sudo apt update
    sudo apt install -y 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
    
  2. 安装 pyenv:先梯子成功

    # 下载并安装 pyenv
    curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
    

太好了!您已经成功执行了 pyenv 的安装脚本

从输出可以看出:

  1. 脚本已下载并执行。
  2. pyenv 的核心代码已克隆到 ~/.pyenv 目录。
  3. 必要的插件(pyenv-doctor, pyenv-update, pyenv-virtualenv)也已安装成功。

✅ 下一步:配置 Shell 环境

安装脚本最后给出了一个重要警告

WARNING: seems you still have not added ‘pyenv’ to the load path.

您需要将指定的环境变量和初始化命令添加到您的 Shell 配置文件中,这样每次打开终端时 pyenv 才能正常工作。

🔧 配置步骤
  1. 确定您的 Shell
    您使用的是 bash(因为提示中提到了 ~/.bashrc)。可以通过 echo $SHELL 确认。

  2. 编辑 ~/.bashrc 文件

    nano ~/.bashrc
    
  3. 将以下内容添加到文件的 末尾

    # >>> pyenv setup >>>
    export PYENV_ROOT="$HOME/.pyenv"
    [[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
    eval "$(pyenv init - bash)"
    eval "$(pyenv virtualenv-init -)"
    # <<< pyenv setup <<<
    
    • export PYENV_ROOT=...:设置 pyenv 的安装根目录。
    • export PATH=...:将 pyenvbin 目录添加到 PATH 中,以便可以直接运行 pyenv 命令。
    • eval "$(pyenv init - bash)":初始化 pyenv,使其能拦截 pythonpip 等命令。
    • eval "$(pyenv virtualenv-init -)":初始化 pyenv-virtualenv 插件(用于创建虚拟环境)。
  4. 保存并退出 nano

    • Ctrl + O 保存。
    • Enter 确认文件名。
    • Ctrl + X 退出。
  5. 重新加载 ~/.bashrc 或重启终端

    source ~/.bashrc
    

    或者直接关闭并重新打开您的终端窗口。


✅ 验证安装

执行以下命令来验证 pyenv 是否已正确配置:

# 检查 pyenv 命令是否可用
pyenv --version

# 应该输出类似:pyenv 2.3.26 (或其他版本号)

# 查看可用的 Python 版本(列表很长,会滚动)
pyenv install --list

# 查看当前系统使用的 Python 版本
pyenv version
# 应该显示类似:system (set by /home/zjl/.pyenv/version) 或其他

✅ 安装 Python 3.12.7

现在您可以使用 pyenv 来安装您想要的 Python 版本了。

# 安装 Python 3.12.7
pyenv install 3.12.7

# 设置全局默认 Python 版本为 3.12.7
pyenv global 3.12.7

# 验证当前 Python 版本
python --version
# 应该输出:Python 3.12.7

# 验证 pip 版本
pip --version

📌 总结

您已经成功安装了 pyenv!只需完成最后一步配置:

  1. 编辑 ~/.bashrc,添加 pyenv 的环境变量和初始化命令。
  2. 执行 source ~/.bashrc 或重启终端。
  3. 运行 pyenv --versionpython --version 进行验证。

完成后,您就可以使用 pyenv install <version> 来安装任何您需要的 Python 版本了。

如果您不希望将 Python 3.12.7 设置为全局默认版本,而是想在特定情况下使用它,您可以选择以下几种方法来访问特定版本的 Python:

方法一:在当前 Shell 会话中临时使用指定版本

您可以在当前终端会话中临时更改 Python 版本,而不影响其他会话或用户。

# 在当前 shell 会话中使用 Python 3.12.7
pyenv shell 3.12.7

# 验证当前使用的 Python 版本
python --version

注意:pyenv shell 的设置仅对当前 shell 会话有效。关闭终端或切换到新的会话后,设置会被重置。

方法二:在项目目录内局部设置 Python 版本

如果您在一个项目的目录下工作,并且希望该项目使用特定版本的 Python,而系统或其他项目不受影响,可以这样做:

  1. 进入您的项目目录

    cd /path/to/your/project
    
  2. 设置该项目使用的 Python 版本

    pyenv local 3.12.7
    

    这会在您的项目目录下创建一个名为 .python-version 的文件,里面包含您设定的 Python 版本号。

  3. 验证设置是否成功

    python --version
    

    现在,在这个目录及其子目录中运行 python 命令时,都会使用 Python 3.12.7。

方法三:直接调用指定版本的 Python 解释器

如果不想修改任何配置,也可以直接通过 pyenv 调用特定版本的 Python 解释器。

# 直接使用 pyenv 执行指定版本的 Python
~/.pyenv/versions/3.12.7/bin/python your_script.py

# 或者更简洁的方式
pyenv which python
# 将输出类似 ~/.pyenv/versions/3.12.7/bin/python 的路径
# 您可以直接使用该路径来执行 Python 脚本

方法四:使用虚拟环境(推荐)

利用 pyenv-virtualenv 插件创建虚拟环境是管理不同项目依赖关系的好方法。每个虚拟环境都可以关联不同的 Python 版本。

  1. 创建一个新的虚拟环境并指定 Python 版本

    pyenv virtualenv 3.12.7 my_project_env
    
  2. 激活虚拟环境

    pyenv activate my_project_env
    
  3. 现在在这个虚拟环境中,默认使用的就是 Python 3.12.7。您可以在其中安装所需的包而不影响系统的 Python 环境。

  4. 当不再需要使用该虚拟环境时,可以停用它

    pyenv deactivate
    

这种方法不仅可以让您灵活地选择 Python 版本,还能帮助隔离不同项目的依赖,避免版本冲突。


根据您的需求,选择最适合的方法来访问特定版本的 Python。对于开发项目来说,使用虚拟环境通常是最佳实践,因为它提供了良好的隔离性,有助于保持系统的整洁和稳定。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐