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

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第三方库


热门话题
datetime如何使用JodaTime在Java中设置时间属性   java固定算法的性能时间   java如何从JMenu中获取所选项以更改文本区域的文本颜色?   java配置单元UDF传递数组<string>作为参数   javaapachebeam和BigQuery   java与PrintWriter之间的差异。printf和PrintWriter。格式方法   继承如何处理按Java版本更改的导入,以及在多个版本上编译   xml java。lang.noClassDefFoundant生成错误   java如何使用包含映射的JSON发送POST请求?   java如何在任何应用程序的JAR文件中绑定MySql数据库?   Java脚本解释器   sslhttpclientjava。网SocketException:未实现未连接的socket   java如何为Android应用程序创建类似于Cron作业的东西   java JButton+radiobox+复选框   java内存管理将文件写入内存   java这是计算对象实例的有效方法吗?   用于死锁情况的java代码?   JavaSpring容器作为新实体插入,而不是存储在表中