如何在虚拟环境中使用不同的 Python 版本

PythonBeginner
立即练习

简介

Python 是一种通用的编程语言,近年来广受欢迎。随着开发者参与各种项目,管理多个 Python 版本及其相应依赖项的需求经常出现。在本教程中,我们将指导你完成设置和使用不同 Python 版本的虚拟环境的过程,使你能够无缝管理开发环境。

理解虚拟环境

Python 中的虚拟环境是相互隔离的 Python 环境,它允许你为不同的项目独立安装和管理软件包。当你有多个具有不同依赖项的项目,或者需要使用不同版本的 Python 或软件包时,这一点特别有用。

什么是虚拟环境?

虚拟环境是自包含的目录,其中包括 Python 解释器、已安装的软件包以及特定项目所需的其他资源。它们允许你创建一个隔离的 Python 环境,而不会影响全局系统 Python 安装或其他项目。

使用虚拟环境的好处

  1. 依赖项管理:虚拟环境帮助你为每个项目独立管理依赖项,避免不同项目之间因需要同一软件包的不同版本而产生冲突。
  2. 可重复性:通过指定虚拟环境中使用的确切软件包和版本,你可以确保你的项目能够在不同机器上或由其他开发者轻松重现。
  3. 隔离性:虚拟环境将你项目的 Python 环境隔离开来,防止系统范围内安装的软件包或其他项目产生干扰。
  4. 灵活性:你可以创建多个虚拟环境并在它们之间切换,从而能够处理具有不同要求的不同项目。

虚拟环境的工作原理

虚拟环境通过创建一个单独的目录来工作,该目录包含一个 Python 解释器以及所有必要的软件包和依赖项。当你激活一个虚拟环境时,系统的 Python 路径会被修改,以指向虚拟环境的 Python 解释器和已安装的软件包,从而有效地将该环境与全局系统 Python 安装隔离开来。

graph TD A[系统 Python] --> B[虚拟环境] B --> C[项目 A 软件包] B --> D[项目 B 软件包]

通过使用虚拟环境,你可以确保你的每个项目都具有正确的 Python 版本和依赖项,而不会影响其他项目或全局系统 Python 安装。

安装和管理 Python 版本

在 Ubuntu 22.04 上安装多个 Python 版本

在 Ubuntu 22.04 上,你可以使用 apt 包管理器安装多个 Python 版本。方法如下:

  1. 更新软件包索引:
sudo apt update
  1. 安装管理多个 Python 版本所需的软件包:
sudo apt install software-properties-common
  1. 将 deadsnakes PPA 添加到系统的源列表中:
sudo add-apt-repository ppa:deadsnakes/ppa
  1. 安装所需的 Python 版本,例如 Python 3.9:
sudo apt install python3.9

在不同 Python 版本之间切换

安装多个 Python 版本后,你可以使用 update-alternatives 命令在它们之间切换:

  1. 列出可用的 Python 版本:
sudo update-alternatives --list python3
  1. 设置默认的 Python 版本,例如设置为 Python 3.9:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
sudo update-alternatives --config python3

验证 Python 版本

你可以通过运行以下命令来验证当前活动的 Python 版本:

python3 --version

使用 pyenv 管理 Python 版本

另一种流行的安装和管理多个 Python 版本的方法是使用 pyenv 工具。pyenv 允许你轻松地在不同 Python 版本之间切换并安装特定版本的 Python。

要在 Ubuntu 22.04 上安装 pyenv,请执行以下步骤:

  1. 安装所需的依赖项:
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
  1. 使用官方安装程序安装 pyenv
curl https://pyenv.run | bash
  1. pyenv 添加到你的 shell 配置文件(例如 .bashrc.zshrc)中:
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
  1. 重启你的 shell 使更改生效。

现在你可以使用 pyenv 在系统上安装和管理不同的 Python 版本了。

使用不同 Python 版本的虚拟环境

使用不同 Python 版本创建虚拟环境

一旦你的系统上安装了多个 Python 版本,你就可以使用所需的 Python 版本创建虚拟环境。方法如下:

  1. 使用 python3 命令,使用特定的 Python 版本创建一个虚拟环境:
python3.9 -m venv my_venv

这将使用 Python 3.9 创建一个名为 my_venv 的虚拟环境。

  1. 激活虚拟环境:
source my_venv/bin/activate

你应该会在终端提示符中看到虚拟环境的名称,表示该环境已激活。

  1. 验证活动虚拟环境中的 Python 版本:
python --version

这应该会显示虚拟环境中使用的 Python 版本。

在虚拟环境中管理依赖项

在虚拟环境中工作时,你可以像往常一样使用 pip 安装软件包。软件包将安装在虚拟环境中,使你的项目依赖项相互隔离。

  1. 在活动虚拟环境中安装一个软件包:
pip install pandas
  1. 列出虚拟环境中已安装的软件包:
pip list

停用和删除虚拟环境

要停用当前的虚拟环境,只需运行:

deactivate

这将使你回到系统的默认 Python 环境。

要删除一个虚拟环境,你只需删除创建它的目录:

rm -rf my_venv

在虚拟环境中使用不同的 Python 版本

通过使用不同的 Python 版本创建虚拟环境,你可以轻松地在需要不同 Python 版本的项目之间切换。这确保了每个项目都有正确的 Python 解释器和依赖项,而不会影响其他项目或系统范围内的 Python 安装。

graph TD A[系统 Python] --> B[虚拟环境 1] B --> C[项目 A 软件包] A[系统 Python] --> D[虚拟环境 2] D --> E[项目 B 软件包]

这种灵活性使你能够管理具有不同要求的复杂项目,确保每个项目在其自己的虚拟环境中隔离了必要的 Python 版本和依赖项。

总结

在本教程结束时,你将对虚拟环境以及如何利用它们来使用不同的 Python 版本有扎实的理解。你将学习安装和管理 Python 版本的步骤,以及根据特定项目需求创建和使用虚拟环境的技术。这些知识将使你能够维护一个干净、有条理的开发环境,确保基于 Python 的应用程序的兼容性和一致性。