如何管理 Python 虚拟环境和依赖项

PythonPythonBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

Python 是一种强大且通用的编程语言,对于高效的 Python 开发而言,管理虚拟环境和依赖项至关重要。本教程将指导你完成创建和管理 Python 虚拟环境的过程,以及处理包依赖项,以确保你的项目能够无缝运行。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python/BasicConceptsGroup -.-> python/variables_data_types("Variables and Data Types") subgraph Lab Skills python/variables_data_types -.-> lab-398226{{"如何管理 Python 虚拟环境和依赖项"}} end

Python 虚拟环境简介

Python 是一种广泛应用于从网页开发到数据分析等众多领域的流行编程语言。在处理 Python 项目时,通常会有多个依赖项,例如库和框架,需要进行安装和管理。这就是 Python 虚拟环境发挥作用的地方。

Python 虚拟环境是一个隔离的 Python 环境,它允许你为每个项目独立安装和管理包及依赖项。这可确保项目的依赖项不会与同一系统上的其他项目发生冲突,并且有助于维护一个干净且一致的开发环境。

为何使用 Python 虚拟环境?

使用 Python 虚拟环境有几个好处:

  1. 依赖项管理:虚拟环境允许你为每个项目分别安装和管理包及其依赖项,防止不同项目的依赖项之间发生冲突。

  2. 可重复性:通过记录项目中使用的包的确切版本,虚拟环境有助于确保项目能够在不同环境中一致地重现和运行。

  3. 隔离性:虚拟环境创建一个独立的 Python 环境,与系统范围的 Python 安装以及其他项目隔离,防止意外的交互和副作用。

  4. 灵活性:虚拟环境使你能够轻松地在不同的 Python 版本和特定于项目的依赖项之间切换,从而允许你同时处理具有不同要求的多个项目。

Python 虚拟环境工具

有几种工具可用于创建和管理 Python 虚拟环境。最常用的工具如下:

  1. venv:Python 中内置的 venv 模块,它提供了一种创建和管理虚拟环境的简单方法。
  2. virtualenv:一个第三方工具,提供了更多功能以及与旧版 Python 的兼容性。
  3. pipenv:一个使用 pip 包安装器结合虚拟环境管理和依赖项管理的工具。
  4. conda:一个包管理器和环境管理系统,随 Python 的 Anaconda 发行版一起提供,为管理虚拟环境和依赖项提供了全面的解决方案。

在下一节中,我们将探讨如何使用 venv 模块创建和管理 Python 虚拟环境。

创建和管理虚拟环境

创建虚拟环境

在本节中,我们将演示如何使用内置的 venv 模块创建 Python 虚拟环境。

  1. 在你的 Ubuntu 22.04 系统上打开一个终端。
  2. 通过运行以下命令确保你已安装 Python 3:
    python3 --version
  3. 通过运行以下命令创建一个新的虚拟环境:
    python3 -m venv my_project_env
    这将在当前目录中创建一个名为 my_project_env 的新虚拟环境。

激活和停用虚拟环境

要使用虚拟环境,你需要激活它。运行以下命令来激活虚拟环境:

source my_project_env/bin/activate

你应该会看到虚拟环境的名称 (my_project_env) 附加在你的终端提示符之前,表示虚拟环境现在已激活。

要停用虚拟环境,只需运行以下命令:

deactivate

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

在虚拟环境中管理依赖项

一旦虚拟环境被激活,你就可以使用 pip 包安装器来安装 Python 包及其依赖项。例如,要安装 numpy 库,运行以下命令:

pip install numpy

你还可以创建一个 requirements.txt 文件来记录项目中使用的包的确切版本,然后使用以下命令安装它们:

pip install -r requirements.txt

这确保了可以在其他机器或不同环境中轻松安装相同的依赖项集,从而提高可重复性。

删除虚拟环境

如果你不再需要某个虚拟环境,只需删除创建它的目录即可将其删除。例如:

rm -rf my_project_env

这将永久删除虚拟环境及其内部安装的所有包。

处理 Python 包依赖项

管理依赖项是 Python 开发的一个关键方面,因为大多数项目都依赖各种库和框架才能正常运行。在本节中,我们将探讨如何有效地处理 Python 包依赖项。

理解包依赖项

当你安装一个 Python 包时,它可能对其他包有自己的依赖项。这些依赖项可能又有它们自己的依赖项,从而形成一个依赖树。正确管理这些依赖项对于确保你的项目顺利运行并避免冲突至关重要。

requirements.txt 中指定依赖项

管理依赖项的一种常见方法是创建一个 requirements.txt 文件,该文件列出项目所需的所有包及其版本。这个文件可用于在其他机器或不同环境中安装完全相同的依赖项集。

以下是一个 requirements.txt 文件的示例:

numpy==1.19.2
pandas==1.1.3
scikit-learn==0.23.2

要安装 requirements.txt 文件中指定的依赖项,在你激活的虚拟环境中运行以下命令:

pip install -r requirements.txt

处理依赖项冲突

有时,在尝试安装新包时可能会遇到依赖项冲突。当新包所需的依赖项版本与你虚拟环境中已安装的版本不兼容时,就会发生这种情况。

要解决此类冲突,你可以尝试以下方法:

  1. 更新冲突的包:尝试将冲突的包更新到与你要安装的新包兼容的版本。
  2. 使用新包的不同版本:如果可能,尝试安装与现有依赖项兼容的新包的不同版本。
  3. 创建一个新的虚拟环境:如果冲突无法解决,你可能需要创建一个新的虚拟环境,并在不同的环境中安装这些包。

依赖项管理工具

除了手动管理依赖项之外,还有一些工具可以帮助自动化这个过程:

  1. pip-tools:一组命令行工具,可简化管理依赖项的过程,包括生成和更新 requirements.txt 文件。
  2. Poetry:一个依赖项管理和打包工具,为管理依赖项、虚拟环境和发布包提供了全面的解决方案。
  3. Pipenv:一个结合了虚拟环境管理和依赖项管理的工具,为管理项目依赖项提供了简化的工作流程。

这些工具可以帮助你维护一个干净且一致的依赖项管理系统,确保你的项目在不同环境中都能可靠运行。

总结

在本全面指南中,你将学习如何设置和管理 Python 虚拟环境,确保你的项目安装了正确的依赖项和包。完成本教程后,你将具备简化 Python 开发工作流程并维护一个干净、有序且可重现的开发环境所需的知识和技能。