如何列出Python文件的全部pip第三方及自定义用户模块依赖?
适配Python3的Python文件全依赖遍历解决方案
以下方案均支持递归遍历所有嵌套导入的文件,同时可区分pip安装的第三方模块、用户自定义本地模块:
方案1:pydeps(最适配需求,开箱即用)
pydeps是当前主流的Python依赖分析工具,完全兼容Python3,支持自动识别标准库、第三方包、本地自定义模块三类依赖,自动递归扫描所有嵌套导入的文件。
- 安装命令:
pip install pydeps - 扫描A.py全依赖并直接输出清单的命令:
pydeps A.py --show-deps - 若需要将结果导出到文件:
pydeps A.py --no-show --output ./deps_list.txt
输出结果会自动按依赖类型分类,你可以直接区分出需要pip安装的第三方包,以及项目内的自有模块。
方案2:使用Python标准库modulefinder(无需额外安装依赖)
如果不想安装第三方工具,可以直接用Python自带的modulefinder实现依赖扫描,参考脚本如下:
from modulefinder import ModuleFinder # 初始化扫描器,传入你要分析的入口文件 finder = ModuleFinder() finder.run_script("A.py") print("=== 全依赖清单 ===") for module_name, module_obj in finder.modules.items(): # 过滤无文件的内置标准模块 if module_obj.__file__: print(f"模块名:{module_name},文件路径:{module_obj.__file__}")
运行脚本后,你可以根据文件路径自行分类:路径属于你的项目目录的为用户自定义模块,路径在Python环境的site-packages目录下的为pip安装的第三方模块。
方案3:仅需提取pip第三方依赖时使用pipreqs
如果你只需要整理需要pip安装的第三方依赖,不需要列出本地自定义模块,可以用pipreqs:
- 安装命令:
pip install pipreqs - 扫描当前项目所有Python文件,导出第三方依赖到requirements.txt:
pipreqs . --force
注意:pipreqs只会输出需要通过pip安装的第三方包,不会包含项目内自有模块。
内容的提问来源于stack exchange,提问作者Yash Gutgutia
相关产品推荐
相关产品推荐

