Linux 系统下 Python 包的安装

LinuxLinuxBeginner
立即练习

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

简介

Python 包通过为各种任务提供专门的工具和库来扩展 Python 的功能。高效地安装和管理这些包是 Python 开发者必备的技能。

在这个实验中,你将学习如何在 Linux 系统上使用标准的 Python 包安装程序 pip。你将设置环境、安装包、管理依赖项,并探索不同的安装选项。这些技能对于在 Linux 环境中工作的任何 Python 开发者来说都是基础。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux/BasicSystemCommandsGroup -.-> linux/source("Script Executing") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") linux/PackagesandSoftwaresGroup -.-> linux/pip("Python Package Installing") linux/VersionControlandTextEditorsGroup -.-> linux/nano("Simple Text Editing") subgraph Lab Skills linux/source -.-> lab-271355{{"Linux 系统下 Python 包的安装"}} linux/touch -.-> lab-271355{{"Linux 系统下 Python 包的安装"}} linux/cd -.-> lab-271355{{"Linux 系统下 Python 包的安装"}} linux/env -.-> lab-271355{{"Linux 系统下 Python 包的安装"}} linux/apt -.-> lab-271355{{"Linux 系统下 Python 包的安装"}} linux/pip -.-> lab-271355{{"Linux 系统下 Python 包的安装"}} linux/nano -.-> lab-271355{{"Linux 系统下 Python 包的安装"}} end

设置你的 Python 环境

在这一步中,你将为 Python 包管理准备工作环境。首先,让我们了解一下我们需要什么:

  • Python:编程语言本身
  • pip:Python 包安装程序,用于安装和管理 Python 包的工具

检查 Python 安装情况

让我们从检查系统中是否已经安装了 Python 开始:

python3 --version

你应该会看到类似如下的输出:

Python 3.10.x

如果 Python 未安装,你可以使用以下命令进行安装(在实验环境中 Python 已经安装,你无需运行此命令):

sudo apt update && sudo apt install python3

安装 pip

现在,让我们安装 pip,它是 Python 的标准包管理器:

sudo apt install python3-pip

安装完成后,通过检查其版本来验证 pip 是否正确安装:

pip3 --version

你应该会看到显示 pip 版本的输出,类似于:

pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)

创建需求文件

包管理的最佳实践之一是在一个名为 requirements.txt 的文件中维护所需包的列表。这允许在不同环境中进行一致的安装。

在你的项目目录中创建此文件:

cd ~/project
touch requirements.txt

使用 nano 文本编辑器打开该文件:

nano requirements.txt

目前,让这个文件保持为空。我们将在下一步中添加包。要退出 nano,按 Ctrl+X,然后按 N,因为我们目前不需要保存任何更改。

使用 pip 安装 Python 包

在这一步中,你将学习如何使用 pip 安装 Python 包。主要有两种安装包的方式:

  1. 直接安装单个包
  2. 从需求文件中安装多个包

了解 Python 包

Python 包是扩展 Python 功能的模块集合。流行的包包括:

  • requests:用于发起 HTTP 请求
  • numpy:用于数值计算
  • pandas:用于数据分析
  • matplotlib:用于数据可视化

安装单个包

要安装单个包,请使用以下命令结构:

pip3 install package_name

让我们安装 requests 包,它通常用于发起 HTTP 请求:

pip3 install requests

你应该会看到显示下载和安装进度的输出,最后会显示安装成功的消息。

创建需求文件

现在,让我们准备一个需求文件来指定多个包及其版本。打开之前创建的 requirements.txt 文件:

nano ~/project/requirements.txt

在文件中添加以下行:

requests==2.25.1
numpy==1.20.1

Ctrl+O 保存文件,然后按 Enter,再按 Ctrl+X 退出。

此文件指定我们要安装:

  • requests 版本 2.25.1
  • numpy 版本 1.20.1

指定版本可确保在不同环境中保持一致性。

从需求文件安装

现在,安装需求文件中指定的包:

pip3 install -r ~/project/requirements.txt

你应该会看到这些包正在被下载和安装。请注意,如果 requests 已经安装但版本不同,pip 会将其更新或降级到需求文件中指定的版本。

验证已安装的包

安装完成后,验证这些包是否已正确安装:

pip3 list

此命令会显示所有已安装的 Python 包。在列表中查找 requestsnumpy,它们应该显示需求文件中指定的确切版本:

Package    Version
---------- -------
...
numpy      1.20.1
...
requests   2.25.1
...

管理 Python 包版本

在这一步中,你将学习如何更新包、安装特定版本的包,以及在需要时卸载包。

检查包信息

在更新或更改包之前,检查其当前信息很有用:

pip3 show requests

这将显示 requests 包的详细信息,包括:

  • 版本
  • 概述
  • 作者
  • 许可证
  • 在你系统中的位置
  • 依赖项

更新包

要将包更新到最新版本,请使用 --upgrade 标志:

pip3 install --upgrade requests

这将把 requests 包更新到可用的最新版本。请注意,这可能会覆盖你 requirements.txt 文件中指定的版本。

安装不同版本

有时,出于兼容性原因,你可能需要安装特定版本的包:

pip3 install numpy==1.19.5

这将把 numpy 降级到 1.19.5 版本。你可以使用以下命令验证更改:

pip3 show numpy

输出现在应该显示版本为 1.19.5,而不是 1.20.1。

卸载包

要移除你不再需要的包,请使用:

pip3 uninstall -y numpy

-y 标志会自动确认卸载,无需提示。你可以验证该包是否已被移除:

pip3 list | grep numpy

这应该没有返回结果,表明 numpy 已不再安装。

重新安装所需的包

现在,让我们根据 requirements.txt 文件重新安装这些包:

pip3 install -r ~/project/requirements.txt

这将以文件中指定的版本重新安装这些包。使用以下命令验证:

pip3 list | grep numpy

你应该会看到 numpy 1.20.1 版本已重新安装。

使用 Python 虚拟环境

虚拟环境是独立的 Python 环境,允许你安装包而不影响系统全局的 Python 安装。在处理具有不同依赖项的多个项目时,这尤其有用。

了解虚拟环境

虚拟环境:

  • 为 Python 项目创建一个独立的空间
  • 允许每个项目拥有自己的依赖项
  • 防止项目需求之间发生冲突

创建虚拟环境

Python 自带了用于创建虚拟环境的 venv 模块。让我们创建一个虚拟环境:

python3 -m venv ~/project/myenv

此命令在你的项目目录中创建一个名为 myenv 的新虚拟环境。

激活虚拟环境

要使用虚拟环境,你需要激活它:

source ~/project/myenv/bin/activate

激活后,你的命令提示符应该会发生变化,表明你现在正在虚拟环境中工作。它看起来会像这样:

(myenv) labex@hostname:~/project$

在虚拟环境中安装包

现在,你安装的包将被隔离在这个环境中。让我们安装一个新包:

pip install matplotlib

请注意,在虚拟环境中,你可以使用 pip 而不是 pip3

验证安装情况:

pip list

你会看到 matplotlib 已安装,但仅安装在这个虚拟环境中。

停用虚拟环境

当你在虚拟环境中完成工作后,你可以停用它:

deactivate

你的命令提示符将恢复正常,表明你已回到系统全局的 Python 环境。

比较环境

现在你已回到全局环境,检查 matplotlib 是否已安装:

pip3 list | grep matplotlib

你应该看不到任何结果,这证实了在虚拟环境中安装的包与全局环境是隔离的。

总结

在这个实验中,你学习了在 Linux 系统上管理 Python 包的重要技能:

  • 使用 pip 设置你的 Python 环境
  • 单独安装包以及从 requirements.txt 文件安装包
  • 管理包的版本(更新、降级、卸载)
  • 使用虚拟环境来隔离项目依赖项

这些技能是 Python 开发工作流程的基础部分。正确的包管理可确保你的项目拥有正确的依赖项,使你的开发过程更可靠、更具可重复性。

当你继续 Python 学习之旅时,你会发现这些包管理技能对于所有类型的 Python 开发都是必不可少的,从 Web 应用程序到数据科学等等。