Skip to main content

查找项目要求中应该或不应该出现的包

项目描述

构建状态 编解码器 派皮

点检查请求

它发生了:你开始在你的项目中使用一个模块并且它工作并且你没有意识到它只包含在你的virtualenv中,因为它是你正在使用的包的依赖项。pip-missing-reqs 会找到这些模块,因此您可以将它们包含在项目的requirements.txt中。

或者,您有一个长期运行的项目,在 requirements.txt 中有一些不再在代码库中积极使用的包。pip-extra-reqs 工具将找到这些模块,以便您删除它们。

假设您的项目遵循建议的示例项目的布局:

setup.py
setup.cfg
requirements.txt
sample/__init__.py
sample/sample.py
sample/tests/test_sample.py

基本用法,在你的项目目录中运行:

<activate virtualenv for your project>
pip-missing-reqs --ignore-file=sample/tests/* sample
pip-extra-reqs --ignore-file=sample/tests/* sample

这将在“sample”中的代码中找到所有导入,并检查这些模块所属的包是否在 requirements.txt 文件中。

此外,可以检查 requirements.txt 中没有在项目中未使用的依赖项:

<activate virtualenv for your project>
pip-extra-reqs --ignore-file=sample/tests/* sample

这将找到在 requirements.txt 中列出但不是由示例导入的任何内容。

示例 tox.ini 配置

为了让您的生活更轻松,请将以下内容复制到您的 tox.ini 中:

[testenv:pip-check-reqs]
deps=-rrequirements.txt
commands=
    pip-missing-reqs --ignore-file=sample/tests/* sample
    pip-extra-reqs --ignore-file=sample/tests/* sample

从此检查中排除测试文件(或其他文件)

您的测试文件有时会出现在与应用程序源相同的目录中(上述示例中的“示例”)。这些测试的要求通常不应该在 requirements.txt 文件中,并且您不希望此工具为这些测试生成错误命中。

您可以使用–ignore-file 选项(简写为-f)从检查中排除这些测试文件。允许该选项的多个实例。

从检查中排除模块

如果您的项目有条件导入的模块或有条件包含的要求,您可以使用–ignore-module(简写为-m)从名称(或全局模式)检查中排除某些模块:

# ignore the module spam
pip-missing-reqs --ignore-module=spam sample
# ignore the whole package spam as well
pip-missing-reqs --ignore-module=spam --ignore-module=spam.* sample

感谢

Josh Hesketh——他重构了代码并贡献了 pip-extra-reqs 工具。

Wil Cooley – 负责删除 normalize_name 并修复了一些错误。

发布历史

2.3.2

  • 修复了对 pip < 21.3 的支持

2.3.1

  • 修复了 –skip-incompatible也跳过了其他要求。

  • 支持点 >= 21.3

2.3.0

  • 支持点数 >= 21.2.1

2.2.2

  • AST 解析失败现在将使用已解析帧的正确文件名报告回溯,而不是<unknown>

2.2.1

  • 现在始终使用 utf-8 读取 Python 源代码,即使设置了读取文件的默认编码也是如此。

2.2.0

  • 向pip-extra- reqs添加了 –skip-incompatible标志,这使得它忽略与当前环境不兼容的环境标记的要求。

  • 在pip-extra-reqspip-missing-reqs 命令中添加了–requirements-file标志。该标志可以指定需求文件的路径。以前,总是使用“requirements.txt” 。

  • 修复了一些使用-d-v标志不可见的日志。

2.1.1

  • 错误修复:虽然从源代码中删除了对 Python 2 的支持,但发布的轮子仍然是通用的。已发布的轮子现在明确不支持 Python 2。请为 Python 2 使用 2.0.4 版本。

2.1.0

  • 删除对 Python 2 的支持。如果您需要该支持,请使用此工具的旧版本。

  • 删除对 setuptools 的要求。

  • 支持更新版本的 pip,包括当前版本,以获得更多功能 (20.1.1)。感谢 @Czaki 提供了此更改的重要部分。

2.0.1

  • 处理从 pip.utils 中删除 normalize_name

  • 处理没有文件的包

2.0将包重命名为 pip_check_reqs

  • 添加了工具 pip-extra-reqs 以查找已安装但未使用的软件包(由 Josh Hesketh 提供)

1.2.1

  • 放宽要求到6.0+

1.2.0

  • 将点数要求提高到 6.0.8+

  • 更新了 pip 内部的使用以匹配该版本

1.1.9

  • 测试修复和清理

  • 删除硬编码的 simplejson 调试行为

1.1.8

  • 使用 os.path.realpath 避免 debian/ubuntu 上的符号链接疯狂

1.1.7

  • 调整以调试输出

1.1.6

  • 添加调试(非常详细)运行输出

1.1.5

  • 在更大的测试运行中将标题添加到输出以使其更清晰

  • 修复测试和自测

1.1.4

  • 添加-版本

  • 从发布的代码中删除调试打印大声笑

1.1.3

  • 修复程序以生成对测试有用的退出代码

1.1.2

  • 来自 pip 的 vendored search_packages_info() 的更正版本

  • 处理相对进口

1.1.1

  • 修复了从 __future__ 导入的处理

  • 自测并添加了自己的requirements.txt

  • 清理使用以要求扫描文件或目录(而不是默认为“.”)

  • 来自 pip 1.6dev 的 vendored 代码修复了 search_packages_info 中的错误,直到 pip 1.6 发布

1.1.0

  • 已实施–忽略模块

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pip_check_reqs-2.3.2.tar.gz (17.0 kB 查看哈希

已上传 source

内置分布

pip_check_reqs-2.3.2-py3-none-any.whl (12.3 kB 查看哈希

已上传 py3