介绍
Python 包通过提供针对各种任务的专用工具和库来扩展 Python 的功能。高效地安装和管理这些包是 Python 开发者的必备技能。
在本实验中,你将学习如何在 Linux 系统上使用 pip,即标准的 Python 包安装程序。你将设置你的环境,安装包,管理依赖项,并探索不同的安装选项。这些技能对于任何在 Linux 环境下工作的 Python 开发者来说都是基础。
Python 包通过提供针对各种任务的专用工具和库来扩展 Python 的功能。高效地安装和管理这些包是 Python 开发者的必备技能。
在本实验中,你将学习如何在 Linux 系统上使用 pip,即标准的 Python 包安装程序。你将设置你的环境,安装包,管理依赖项,并探索不同的安装选项。这些技能对于任何在 Linux 环境下工作的 Python 开发者来说都是基础。
在本步骤中,你将准备一个干净的 Python 环境用于包管理。你将学习使用虚拟环境 (virtual environments),这对于管理项目依赖项而不产生冲突至关重要。
首先,让我们验证 Python 和 pip 是否可用:
python3 --version
pip3 --version
你应该会看到 Python 3.10.x 和 pip 版本信息。如果 pip 未安装,请进行安装:
sudo apt update
sudo apt install python3.10-venv -y
sudo apt upgrade python3-pip -y
虚拟环境为每个项目创建隔离的 Python 空间。这可以防止不同项目之间的包冲突:
cd ~/project
python3 -m venv myproject_env
source myproject_env/bin/activate
你的提示符现在应该显示 (myproject_env),表明你已进入虚拟环境。在虚拟环境中,你可以使用 pip 而不是 pip3。
创建一个 requirements.txt 文件来跟踪你项目的依赖项:
touch requirements.txt
此文件将帮助你在不同系统上重新创建相同的环境。
在本步骤中,你将学习如何单独安装 Python 包以及如何使用 requirements 文件进行安装。请确保你已进入虚拟环境(你的提示符应显示 (myproject_env))。
让我们安装 requests 包,它常用于发送 HTTP 请求:
pip install requests
你将看到下载和安装进度。验证安装:
pip list
你应该会在已安装的包列表中看到 requests。
现在,让我们在 requirements 文件中指定多个包及其精确版本。打开它:
nano requirements.txt
添加以下内容:
requests==2.31.0
numpy==1.24.3
pandas==2.0.3
使用 Ctrl+O,Enter 保存,然后使用 Ctrl+X 退出。
这种方法通过指定精确的包版本,确保了不同系统之间环境的一致性。
从你的 requirements 文件安装所有包:
pip install -r requirements.txt
由于 requests 已安装,pip 将保留它或更新到指定版本。新包(numpy 和 pandas)将全新安装。
验证所有包是否已安装:
pip list | grep -E "(requests|numpy|pandas)"
你应该会看到这三个包及其指定的版本。
在本步骤中,你将学习重要的包管理操作:检查包信息、更新包以及安装特定版本。
检查已安装包的详细信息:
pip show requests
这将显示版本、依赖项、许可证和安装位置信息。
有时你需要不同版本以实现兼容性。安装特定版本的 numpy:
pip install numpy==1.23.5
验证版本更改:
pip show numpy | grep Version
你应该会看到版本 1.23.5 而不是 1.24.3。
将包更新到其最新版本:
pip install --upgrade pandas
这将把 pandas 更新到最新可用版本。
生成当前包及其版本的完整列表:
pip freeze > current_env.txt
查看生成的文件:
cat current_env.txt
此文件可用于通过 pip install -r current_env.txt 在其他地方重新创建完全相同的环境。
在最后一步中,你将学习虚拟环境的最佳实践以及如何有效地管理项目依赖项。
练习停用你的虚拟环境:
deactivate
你的提示符应恢复正常(没有 (myproject_env))。尝试运行 pip list:
pip list
你只会看到系统安装的包。现在重新激活你的环境:
source ~/project/myproject_env/bin/activate
注意当你重新激活时,你的项目包是如何返回的。
检查哪些包依赖于其他包:
pip show pandas
查看 "Requires" 行以了解 pandas 的依赖项。这就是为什么管理环境至关重要——安装一个包通常会安装许多其他包。
创建一个干净的 requirements 文件,其中只包含你的直接依赖项:
nano ~/project/requirements.txt
将内容替换为仅你明确需要的包(而不是它们的依赖项):
requests==2.31.0
numpy==1.23.5
pandas==2.0.3
保存并退出。当其他人从该文件安装时,pip 将自动处理依赖项。
你的环境现在已准备好共享。任何人都可以使用以下命令重新创建它:
pip install -r requirements.txt
这是可复现 Python 开发的基础。
在本实验中,你已掌握了在 Linux 上进行 Python 包管理的基础知识:
这些技能对任何 Python 开发人员都至关重要。虚拟环境可防止项目之间的冲突,而正确的依赖项管理可确保你的代码在不同系统上始终如一地运行。
你现在已准备好在任何 Linux 开发环境中自信地管理 Python 包!