Skip to content

Python 版本与虚拟环境

在 Python 开发中,管理不同的项目依赖和 Python 版本是一个常见挑战。一个项目可能需要某个特定版本的库,而另一个项目可能需要该库的另一个不兼容版本。虚拟环境就是为了解决这个问题而生的。

Python 版本管理

有时,你可能需要在同一台计算机上使用多个 Python 版本(例如,同时使用 Python 3.8 和 Python 3.10)。管理多个 Python 版本的工具有很多,其中最流行的是 pyenv

  • pyenv: 是一个流行的命令行工具,可以让你轻松地安装、切换和管理多个 Python 版本。它在 macOS 和 Linux 上被广泛使用。对于 Windows 用户,可以使用 pyenv-win

为什么需要多版本管理?

  • 兼容性测试: 确保你的代码能在不同 Python 版本下正常运行。
  • 维护旧项目: 一些老项目可能依赖于已经不再是最新版的 Python。

什么是虚拟环境?

虚拟环境是一个自包含的目录树,其中包含一个特定版本的 Python 安装,以及一些额外的包。它的核心思想是为每个项目创建一个隔离的、独立的 Python 环境。

使用虚拟环境的好处:

  1. 依赖隔离: 每个项目都有自己独立的库和依赖项,避免了不同项目之间的版本冲突。你可以为一个项目安装 requests==2.20.0,同时为另一个项目安装 requests==2.25.1
  2. 保持全局环境清洁: 避免将所有包都安装到系统的全局 Python 环境中,这会让全局环境变得混乱且难以管理。
  3. 明确项目依赖: 当你为一个项目设置了虚拟环境,该环境中的所有包都是这个项目所需要的。这使得生成 requirements.txt 文件变得非常容易,方便与他人协作。

如何使用虚拟环境?

从 Python 3.3 开始,标准库中内置了 venv 模块,用于创建虚拟环境。这是目前推荐的标准做法。

1. 创建虚拟环境

打开终端或命令行,导航到你的项目目录,然后运行以下命令:

bash
# python3 -m venv <虚拟环境的名称>
# 通常,我们将虚拟环境命名为 'venv' 或 '.venv'
python3 -m venv venv

执行后,你会在项目目录下看到一个名为 venv 的新文件夹。这个文件夹包含了 Python 解释器的副本和一些管理脚本。

提示: 最好将虚拟环境文件夹(如 venv/)添加到你的 .gitignore 文件中,这样它就不会被提交到版本控制系统里。

2. 激活虚拟环境

创建环境后,你需要激活它才能开始使用。

  • 在 macOS / Linux 上:

    bash
    source venv/bin/activate
  • 在 Windows 上 (使用 Command Prompt):

    bash
    .\venv\Scripts\activate
  • 在 Windows 上 (使用 PowerShell):

    powershell
    .\venv\Scripts\Activate.ps1

激活后,你会看到你的命令行提示符前面出现了 (venv) 的字样,这表示你现在正处于虚拟环境中。在此之后,你使用的 pythonpip 命令都将是这个独立环境中的版本。

3. 在虚拟环境中安装包

激活环境后,你可以像平常一样使用 pip 安装包,但这些包只会被安装到当前的虚拟环境中。

bash
(venv) $ pip install requests
(venv) $ pip install numpy pandas

4. 退出虚拟环境

当你完成工作,想要返回到全局 Python 环境时,只需运行:

bash
(venv) $ deactivate

管理项目依赖: requirements.txt

为了让其他开发者(或者未来的你)能够轻松地重建项目的环境,你应该创建一个 requirements.txt 文件来记录所有的依赖。

  • 生成 requirements.txt: 在激活虚拟环境后,运行以下命令。它会将当前环境中所有已安装的包及其版本号输出到文件中。

    bash
    pip freeze > requirements.txt
  • requirements.txt 安装依赖: 当其他人获取你的项目后,他们可以创建并激活自己的虚拟环境,然后运行以下命令来安装所有必需的包:

    bash
    pip install -r requirements.txt

本站内容仅供学习和研究使用。