显示python模块依赖关系图和静态内存使用情况。

module-graph的Python项目详细描述


模块图

显示python模块依赖关系图和静态内存使用情况。在

安装

首先需要在系统中安装graphviz。在

  • 马克:

    brew install graphviz
    
  • Ubuntu:

    ^{pr2}$ 在

然后:

pip install 'module-graph[all]'

使用

分析当前安装的模块

移动所有模块并生成图形数据:

python -m module_graph.run_traveler

命令参考:

usage: run_traveler.py [-h] [--modules MODULES] [--ignore IGNORE]

Module Graph Traveler

optional arguments:
  -h, --help         show this help message and exit
  --modules MODULES  top level modules to check, default all modules
  --ignore IGNORE    ignore modules (shell patterns)

应用程序使用的分析模块

Warning: the hooker will do crazy patch to sys module, your application may be slower or crash!

在应用中尽早安装钩子。在

importmodule_graphif__name__=="__main__":memory_hooker=module_graph.setup_hooker(save_to='data/module_graph.json',verbose=True)

运行你的应用程序一段时间,然后停止它。 钩子将为应用程序使用的所有模块生成数据。在

渲染图形

使用module-graph命令呈现图形,例如:

module-graph --input-filepath data/module_graph.json

命令参考:

usage: module-graph [-h] [--modules-filepath MODULES_FILEPATH]
                    [--input-filepath INPUT_FILEPATH]
                    [--output-filepath OUTPUT_FILEPATH]
                    [--threshold THRESHOLD]

Module Graph Render

optional arguments:
  -h, --help            show this help message and exit
  --modules-filepath MODULES_FILEPATH
                        modules to render, default all modules
  --input-filepath INPUT_FILEPATH
                        the module graph data generated by hooker (json file)
  --output-filepath OUTPUT_FILEPATH
                        render output PDF filepath
  --threshold THRESHOLD
                        donot show module which memory usage < threshold (MB)

工作原理

它修补sys.meta_pathsys.modules和所有模块加载程序, 然后记录模块导入前后的内存。在

许可证

这个软件包是在麻省理工学院许可下发布的。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java静态工厂方法如何推断泛型?   Java中长整数与简单整数的比较   java无法使用JPA创建映射实体   java如何尽早停止处理JSP?   java错误:变量可能尚未初始化?   启用安全性时,WAS 855中的java Mbean调用因凭据为空而失败   java如何获取上次拆分后的最后时间间隔?   在java中删除所选图像   来自Guava EventBus订阅服务器的java抛出异常   java抑制异常作为收集多个异常的方法   java重新启动ScheduledExecutorService计划任务的正确方法是什么?   java为什么我得到org。冬眠HibernateeException:未配置CurrentSessionContext   将mouseListener添加到BuffereImage时发生java错误   java如何从<application>   java我一直收到一个错误,说“无法从int转换为Drawable”。我正在尝试将图像分配到位置。有办法解决这个问题吗?   java Android Jsoup证书问题   java Spring找不到HTTPrequest的映射