查找应该或不应该在项目需求中的包

pip_check_reqs的Python项目详细描述


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

或者,您有一个长期运行的项目,其中包含一些包 不再在代码库中使用的Requirements.txt。这个 pip额外需求工具将找到这些模块,以便您可以删除它们。

假设您的项目遵循建议的布局sample project

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额外需求工具。

wil cooley–他处理了normalize_name的删除并修复了一些错误。

发布历史记录

2.0.1

  • 已处理从pip.utils中删除normalize\u名称的操作
  • 处理没有文件的包

2.0将包重命名为pip检查请求

  • 添加了工具pip extra req以查找已安装但未使用的包 (乔希·赫斯基撰稿)

1.2.1

  • 将要求放宽到6.0+

1.2.0

  • 将PIP要求提高到6.0.8+
  • 更新了pip内部组件的使用以匹配该版本

1.1.9

  • 测试修复和清理
  • 删除硬编码simplejson调试行为

1.1.8

  • 使用os.path.realpath避免debian/ubuntu上的symlink疯狂

1.1.7

  • 调整以调试输出

1.1.6

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

1.1.5

  • 将标题添加到输出,以便在较大的测试运行中更清楚地显示出来
  • 修复测试和自检

1.1.4

  • 添加–版本
  • 从发布的代码lol中删除调试打印

1.1.3

  • 程序生成用于测试
  • 的退出代码

1.1.2

  • 已更正PIP中提供的search_packages_info()的版本
  • 处理相对导入

1.1.1

  • 从未来进口的固定处理
  • 自我测试并添加了own requirements.txt
  • 清除了需要扫描文件或目录的用法(而不是 默认为“.”)
  • pip 1.6dev提供的代码修复了搜索包中的bug 直到PIP 1.6被释放

1.1.0

  • 实现–忽略模块

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Thumbnailator库将图像转换为cmyk   Java反射从目录中的类运行测试   JavaEclipseJDT编译器说方法未定义,但EclipseIDE没有   重构如何重构一行重复的java代码   java Eclipse:使用删除线文本呈现自定义注释   java问题与ArrayList复制数据   java如何在swagger中传递访问令牌?   使用另一个java文件运行java文件时出错   java为什么谷歌云存储生成的上传链接在成功上传后不会失效?   java将我的客户端PC重定向到默认登录页面   java hibernate c3p0配置mysql问题   java和java之间的区别。尼奥。文件文件和java。伊奥。文件   列出java循环并向映射中添加值   java为什么OJ报告这段代码的运行时错误?