python程序流程控制模板_利用python ast包,绘制python代码的cfg控制流程图

我的目的是辅助代码阅读,因此不需要太详细的信息,只需要看用户定义的函数的函数调用关系,忽略所有的内置函数。

一开始我试图寻找现成的轮子,在github上得偿所愿,https://github.com/coetaur0/staticfg,需要详细信息的朋友可以去看看,我总结了staticfg安装使用中的问题:

我的电脑上装了anaconda和pycharm,pycharm的解释器可以设置成anaconda中的python,这样就可以在pycharm中使用anaconda装的包。

在anaconda navigator中打开cmd.exe,可以直接使用pip命令来安装staticfg。pip会先安装astor库,如果超时的话就等它耗尽超时次数,然后重试。

pip成功安装之后,尝试readme中的demo,会报错,大意是说要将graphviz的可执行文件添加到环境变量。需要到http://www.graphviz.org/download/去下载,安装时可以选择自动添加到环境变量。然后readme中的斐波那契demo就可以正常分析了。

如果分析的py文件中有中文注释,会报unicode decode error,说gbk无法解码某一个byte。据说是因为python默认使用gbk。不用修改任何代码的一个解决方法是,python -X utf8 build_cfg.py [input] [output]。其中,build_cfg.py在clone下来的example目录下。

之后还可能会有另一个错误,在builder.py里,大意是+=的运算数不能是str和nonetype。这个问题貌似是输入文件中有strip函数引起的。如果可以顺利执行的话,生成的结果

你可能感兴趣的:(python程序流程控制模板)