Python工具,用于扫描您项目requirements.txt文件中的所有未使用包。
项目描述
ScanReq
ScanReq - Python工具,用于扫描您项目requirements.txt文件中的所有未使用包。
背景
检查Python项目中需求的一个流行工具是pipdeptree
。然而,当我们不知道requirements.txt
文件中列出的哪些包在项目中实际使用时,问题就出现了。如果您的项目很小,检查起来很方便,但随着项目规模的扩大,逐个检查变得令人头疼。
因此,这个工具可以帮助我们轻松地识别项目中哪些确切包实际上未被使用。
优点
- 节省资金:移除未使用的依赖项以降低托管成本。
- 加速:更快的安装和构建时间意味着更快的开发。
- 合理利用资源:通过移除不使用的部分来释放磁盘和内存空间。
- 易于维护:保持项目更干净、更简单,便于管理。
- 专注更佳:只处理所需内容,提高生产力。
- 高效更新:确保依赖项更新,以实现更流畅的兼容性。
- 保持安全:通过删除不必要的依赖项来减少安全漏洞的机会。
- 合法合规:通过更有效地管理依赖项来避免许可问题。
- 协同工作:通过一致的依赖项集合简化协作。
- 编写更好的代码:保持文档和代码库整洁,以提升质量。
安装
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 查看散列值)
关闭
scanreq-0.0.9.tar.gz 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 18030f232615d6761cdf18fe1702930c654f8f1214362c5c58e63b34c624d6d2 |
|
MD5 | b091459116919744a294a076ae2785c2 |
|
BLAKE2b-256 | 0f51d7619dd275d3fb009fcaaeb08b2c8860dc4911805243b23b7be5a4cbd0a0 |
关闭
scanreq-0.0.9-py3-none-any.whl 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 872d839d2f8fd84ac1bbfac82dd523a4af00b010538ece441524ff35e8acf269 |
|
MD5 | 8e28ddf19bfdebe4857987822be2511a |
|
BLAKE2b-256 | ad47977002e4d2bf002517489337acd23bd286cc90eecdd0b111336d10204db3 |