Python依赖分析工具是一款依赖管理软件。该工具能够扫描Python源代码文件,智能识别项目所需的第三方库依赖,并生成标准的requirements.txt文件。软件提供两种分析模式:AST本地分析模式和pipreqs分析模式,满足不同场景下的依赖分析需求。
核心功能基于代码实现:
- 依赖扫描功能:通过AST语法树解析或pipreqs工具,自动提取Python文件中的import语句,识别第三方库依赖
- 版本查询功能:调用本地pip命令查询已安装包的版本信息,无需网络连接
- 批量处理功能:支持单文件和多文件(含子文件夹)的批量依赖分析
- 一键安装功能:分析完成后可直接批量安装所有依赖包
功能特点
1. 双模式分析引擎
软件提供两种依赖分析模式,用户可根据需求灵活选择:
- AST本地分析模式:使用Python内置ast模块解析源代码语法树,提取import语句中的第三方库,结合本地pip查询获取版本信息。该模式无需网络连接,分析速度快,适合离线环境使用
- pipreqs分析模式:调用pipreqs工具进行依赖分析,适合需要更全面依赖检测的场景
2. 智能标准库过滤
内置完整的Python标准库列表(涵盖abc、argparse、asyncio、datetime、os、sys等100+标准库模块),自动过滤标准库导入,确保只输出真正的第三方依赖,避免requirements.txt文件臃肿
3. 导入名到包名映射
内置常见导入名到pip包名的映射关系(如PIL→Pillow、Crypto→pycryptodome等),解决导入名与安装包名不一致的问题,确保pip安装命令正确执行
4. 拖拽操作支持
集成tkinterdnd2库,支持直接将.py文件或文件夹拖拽到路径输入框,快速加载待分析项目,提升操作效率
5. 子文件夹穿透扫描
提供”支持子文件夹穿透”选项,勾选后可递归扫描选定文件夹下的所有Python文件,适合大型项目的依赖分析
6. 一键批量安装
分析完成后,点击”一键安装依赖”按钮即可批量安装所有识别出的第三方库,安装过程在后台线程执行,界面不会卡顿
7. 实时日志输出
提供滚动日志显示区域,实时输出分析进度、警告信息和操作结果,方便用户了解处理状态
详细使用说明
界面布局说明
程序启动后显示主窗口,包含以下区域:
- 标签页切换区:顶部提供”AST本地分析”和”pipreqs分析”两个标签页,点击切换分析模式
- 路径输入区:文本框显示当前加载的文件/文件夹路径,支持直接拖拽操作
- 选项区:提供”支持子文件夹穿透”复选框
- 按钮区:包含”分析并导出依赖”、”一键安装依赖”、”清空日志”三个功能按钮
- 日志显示区:滚动文本框,显示操作过程和结果信息
AST本地分析模式详解
该模式使用Python内置ast模块解析源代码:
- 读取Python源文件内容
- 构建抽象语法树(AST)
- 遍历语法树提取所有import和from…import语句
- 过滤掉Python标准库模块
- 通过MAPPING字典将导入名转换为pip包名
- 调用
pip show命令查询本地已安装包的版本 - 生成requirements.txt文件,格式为:包名==版本号
pipreqs分析模式详解
该模式调用pipreqs工具进行分析:
- 将待分析的Python文件复制到临时目录
- 调用pipreqs命令扫描临时目录
- 读取生成的requirements.txt内容
- 显示分析结果并提供安装功能
输出文件说明
分析完成后,程序会在以下位置生成requirements.txt文件:
- 单文件模式:在与源文件相同的目录下生成
文件名_requirements.txt - 文件夹模式:在文件夹根目录下生成
requirements.txt
文件格式示例:
Pillow==9.5.0requests==2.28.1numpy==1.24.3
日志信息解读
日志区域会显示以下类型信息:
- 文件加载信息:显示已加载的文件数量
- 分析进度:逐个显示正在处理的文件名
- 警告信息:未在本地安装的包会显示警告
- 导出结果:显示生成的requirements.txt文件路径
- 安装进度:显示pip安装命令的执行状态
使用场景示例
场景一:新项目环境搭建
小明从GitHub下载了一个Python项目,需要快速配置开发环境:
- 启动Python依赖分析工具,选择”AST本地分析”模式
- 将项目文件夹拖拽到路径输入框
- 勾选”支持子文件夹穿透”选项
- 点击”分析并导出依赖”按钮
- 查看日志确认所有依赖已被识别
- 点击”一键安装依赖”按钮,等待安装完成
- 项目环境配置完成,可以开始开发
场景二:依赖版本迁移
开发团队需要将项目从开发环境迁移到生产环境,确保依赖版本一致:
- 在开发环境运行工具,分析项目依赖
- 检查生成的requirements.txt文件内容
- 将requirements.txt文件提交到版本控制系统
- 在生产环境使用
pip install -r requirements.txt安装依赖 - 确保两个环境的依赖版本完全一致
场景三:项目依赖清理
老项目经过多次迭代,需要清理不再使用的依赖:
- 使用工具分析当前项目实际使用的依赖
- 对比现有的requirements.txt文件
- 移除不再使用的依赖项
- 更新requirements.txt文件
- 保持项目依赖的整洁和准确
注意事项
重要警告
数据安全:分析过程中不会修改源代码文件,仅读取文件内容进行语法分析,请放心使用
版本准确性:AST模式查询的是本地已安装包的版本,如本地未安装某依赖,将无法获取版本号,生成的requirements.txt中该包将无版本指定
安装风险:使用”一键安装依赖”功能前,请确认依赖列表正确无误,避免安装不需要的包
网络要求:AST本地分析模式无需网络连接,pipreqs模式可能需要网络连接
权限问题:在系统目录下运行时可能需要管理员权限
操作建议
- 首次使用建议先用单个文件测试,熟悉操作流程
- 大型项目分析可能需要较长时间,请耐心等待
- 建议在虚拟环境中使用,避免污染系统Python环境
- 定期更新依赖库版本,保持项目安全性
常见问题解答
Q: 为什么某些导入的库没有被识别?
A: 可能的原因包括:1)该库是Python标准库,已被自动过滤;2)导入方式特殊,如动态导入(importlib.import_module);3)库在代码中未实际使用。建议检查源代码中的import语句格式。
Q: 生成的requirements.txt中某些包没有版本号怎么办?
A: 这表示该包在本地环境中未安装。您可以:1)先安装该包后再重新分析;2)手动在requirements.txt中添加版本号;3)不指定版本,让pip自动安装最新版本。
Q: AST模式和pipreqs模式有什么区别?
A: AST模式使用Python内置模块解析,速度快、无需网络、依赖本地pip;pipreqs模式使用第三方工具,可能检测到更多隐式依赖,但需要额外安装pipreqs包。
Q: 支持分析哪些类型的Python文件?
A: 目前仅支持分析.py扩展名的Python源代码文件,暂不支持.pyx、.pyd等编译文件。
Q: 分析过程中程序无响应怎么办?
A: 程序使用多线程处理,正常情况下界面不会卡顿。如出现无响应,请检查:1)文件是否过大;2)是否选择了包含大量文件的文件夹;3)系统资源是否充足。
Q: 如何处理导入名与包名不一致的情况?
A: 程序内置了常见映射关系(如PIL→Pillow),如遇到未覆盖的情况,可在源代码的MAPPING字典中手动添加映射关系。
Q: 生成的requirements.txt可以用于其他项目吗?
A: requirements.txt是Python标准的依赖声明文件,可以在任何Python项目中使用pip install -r requirements.txt命令安装依赖。
程序使用环境及相关说明
1、适用的系统环境说明: win7及以上64位win操作系统 , 注意事项:win32位系统以及mac系统需要额外定制开发
2、关于使用限制:①无需注册、登录等限制,直接使用, ②没有电脑台数限制, ③无使用时间限制、不联网本地使用、确保数据安全
3、程序如何安装:不需要安装,按照说明使用即可。
特别注意:请先测试,注意备份原文件,之后再批量使用,避免不可逆损失。
程序使用说明
本工具下载地址
更新日志
V1.0
- 随机文章
- 热门文章
- 753-批量从各文件夹内随机挑选指定数量文件移动到指定文件夹
- 755-批量根据excelA-B列内容移动文件夹到目标文件夹
- 777-根据文件创建时间修改时间先后对每个文件夹下所有文件进行排序
- 790-批量统计各文件夹下文件类型数量及文件夹路径输出到excell
- 453-批量删除pdf中包含二维码的注释-(只处理注释)
- 201-批量删除excell文件xlsx格式文件中的空行
- 10080-2-监测指定文件夹-对zip-rar-7z所有压缩包创建同名文件夹移入并解压-支持子孙文件夹下压缩包解压-支持多层嵌套压缩包的解压-支持密码库解压
- 20250108-批量将指定文件夹A下每个文件夹下文件平均随机分配到目标文件夹下各一级文件夹内
- Windows 启用长路径支持
- 101-m3u8链接解析下载工具-可一次输入多个m3u8链接







还没有评论,来说两句吧...