跳转到主要内容

Python工具,用于扫描您项目requirements.txt文件中的所有未使用包。

项目描述

ScanReq

PyPI - Version PyPI - Python Version Build Status Code Style

ScanReq - Python工具,用于扫描您项目requirements.txt文件中的所有未使用包。

背景

检查Python项目中需求的一个流行工具是pipdeptree。然而,当我们不知道requirements.txt文件中列出的哪些包在项目中实际使用时,问题就出现了。如果您的项目很小,检查起来很方便,但随着项目规模的扩大,逐个检查变得令人头疼。

因此,这个工具可以帮助我们轻松地识别项目中哪些确切包实际上未被使用。

优点

  1. 节省资金:移除未使用的依赖项以降低托管成本。
  2. 加速:更快的安装和构建时间意味着更快的开发。
  3. 合理利用资源:通过移除不使用的部分来释放磁盘和内存空间。
  4. 易于维护:保持项目更干净、更简单,便于管理。
  5. 专注更佳:只处理所需内容,提高生产力。
  6. 高效更新:确保依赖项更新,以实现更流畅的兼容性。
  7. 保持安全:通过删除不必要的依赖项来减少安全漏洞的机会。
  8. 合法合规:通过更有效地管理依赖项来避免许可问题。
  9. 协同工作:通过一致的依赖项集合简化协作。
  10. 编写更好的代码:保持文档和代码库整洁,以提升质量。

安装

pip3 install scanreq

使用

注意:请确保您正在使用 Python 环境,并且已安装所有项目 requirements.txt 文件。

scanreq -r requirements.txt -p . -o unused-requirements.txt -i black,flake8
[i] Please wait! It may take few minutes to complete...
[i] Scanning unused packages:
 1.  Module: rcssmin                       -> Package: rcssmin
 2.  Module: model_utils                   -> Package: django-model-utils
 3.  Module: pinax_theme_bootstrap         -> Package: pinax-theme-bootstrap
 4.  Module: phonenumbers                  -> Package: phonenumbers
cat unused-requirements.txt
rcssmin
django-model-utils
pinax-theme-bootstrap
phonenumbers

酷吧?😎

scanreq --help
usage: scanreq [-h] [-r REQUIREMENTS] [-p PATH] [-o OUTPUT] [-i IGNORED_PACKAGES]

Scan for unused Python packages.

optional arguments:
  -h, --help            show this help message and exit
  -r REQUIREMENTS, --requirements REQUIREMENTS
                        Path to the requirements.txt file to read packages from.
  -p PATH, --path PATH  Project path to scan for unused packages (default: current directory).
  -o OUTPUT, --output OUTPUT
                        Path to the output file where unused packages will be saved.
  -i IGNORED_PACKAGES, --ignored-packages IGNORED_PACKAGES
                        Comma separated list of package names to be ignored.

注意:在找到未使用的包后,别忘了交叉检查它们,因为有时它们在代码中没有导入的情况下被用于不同的情况。例如:argon2-cffi在Django的settings.PASSWORD_HASHERS = ["django.contrib.auth.hashers.Argon2PasswordHasher", ...]中使用。

待办事项列表

  • 支持论证解析器(命令行参数)
    • 扫描目录
    • 扫描需求文件
    • 选择将未使用的包的输出写入
    • 选择排除或忽略某些包
    • 选择自动从 requirements.txt 文件中替换包
  • 支持 CLI - 使其成为一个命令
  • 编写一些测试
  • 发布到 PyPi
  • 支持多个 Python 版本
  • 支持多个设备(Linux、Macbook 和 Windows)
  • 支持扫描 pyproject.toml

项目详情


下载文件

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

源分布

scanreq-0.0.9.tar.gz (9.0 kB 查看散列值)

上传时间:

构建分布

scanreq-0.0.9-py3-none-any.whl (7.7 kB 查看散列值)

上传时间: Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面