【pip command】之依赖关系的初步处理

本文详细介绍了如何使用pip命令处理Python项目的依赖关系,包括验证安装包的兼容性、查看本地已安装包、获取项目依赖包列表并生成requirements.txt,以及根据列表安装所有包。同时,探讨了pip freeze的options,如自定义安装顺序、排除特定包等,强调在虚拟环境中管理依赖的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

提示:这里可以添加本文要记录的大概内容:

官方文档介绍了依赖项解析:“pip 能够确定和安装包的依赖关系。确定要安装哪个版本的依赖项的过程称为依赖项解析(dependency resolution)。可以通过传递 --no-depspip install 来禁用此行为。”

若不禁用,则 py -m pip install <pkg> 将会安装指定的 pkg 及其依赖的其他包,非常简便。

本文是对 pip 命令行处理项目依赖关系的记录。


提示:以下是本篇文章正文内容,下面案例可供参考

1 依赖关系

1.1. 验证安装的软件包是否具有兼容的依赖关系

在这里插入图片描述

1.2. 查看本地已安装的包(非自带)

  1. pip freeze 会输出所有在本地已安装的包(但不包括 pip、wheel、setuptools 等自带包)
  2. 若需要输出内容与 pip list 一致,需使用 pip freeze -all
    在这里插入图片描述

1.3. 获取项目依赖包的安装列表

为了代码稳定迁移,需要获取当前项目依赖包的安装列表,包括需要安装的包及其版本。这便是:requirements.txt。

  1. 输出列表至 requirements.txt:pip freeze > requirements.txt。这里使用了输入输出重定向。
  2. 可根据需要编辑 requirements.txt:删除任何不必要或过时的需求,可以显著降低依赖关系树的复杂性,从而减少安装包之间版本冲突的机率。
  3. 一定要配合 Python 虚拟环境 virtualenv 使用。有项目的,替换一下。

1.4. 根据列表安装所有包

  1. 一次性安装 requirements.txt 中的所有包(指定版本):pip install -r requirements.txt
  2. 可参考该命令行:pip download -d packages -r requirements.txt,不过我还没有试过。

2 pip freeze 的 options

2.1. 学习手册

  1. 官方手册
  2. 简易学习

2.2. options 列举

如下内容转自 简易学习,简单整理,并依官方手册略微修改。

  1. -r, --requirement <file>
    生成输出时,使用给定需求文件中的顺序及其注释
    该选项可重复多次添加
    我将其用于 pip install

  2. -f, --find-links <url>
    用于查找包的网址,会添加到输出结果中

  3. -l, --local
    只列出在虚拟环境中安装的包,也就是不列出全局安装的包。
    如果在具有全局访问权限的 virtualenv 中,请不要输出全局安装的包。

  4. --user
    一般只在虚拟环境中使用 --user
    只输出用户级别的已安装的包

  5. --all
    在输出结果中包含以下几个包 wheel, pip, distribute, setuptools

  6. --path <path>
    指定安装路径(可多次使用)。

  7. --exclude-editable
    从输出结果中排除可编辑的包

  8. --exclude <package>
    从输出中排除指定的包


总结

  1. py -m pip install <pkg> 将会安装指定的 pkg 及其依赖的其他包。
    在这里插入图片描述
  2. pip freeze 生成一个 requirements.txt 文件,并用 pip install 在另一环境中从 requirements.txt 安装。
  3. 更好的处理方式请期待升级处理。

在这里插入图片描述



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值