帮助浏览/跟踪(大型)python项目的工具';源代码

帮助浏览/跟踪(大型)python项目的工具';源代码,python,django,ide,Python,Django,Ide,一个具体的例子:熟悉django的项目源代码(core、contrib、utils等)。一个有用的工具示例:ctags-它允许您“跳转”到定义函数/方法的文件+位置。想知道开发人员使用的其他工具(例如:是否有一个工具提供了一个函数x(),列出了调用x()的函数和被x()调用的函数?)。谢谢 编辑:添加了一个答案,其中包含了到目前为止在其他答案中提到的工具的集合您可以尝试cscope!维基百科说 通常用于搜索C或C++文件中的内容,但它可以用来搜索其他语言的内容,如java、python、php和

一个具体的例子:熟悉django的项目源代码(core、contrib、utils等)。一个有用的工具示例:ctags-它允许您“跳转”到定义函数/方法的文件+位置。想知道开发人员使用的其他工具(例如:是否有一个工具提供了一个函数x(),列出了调用x()的函数和被x()调用的函数?)。谢谢


编辑:添加了一个答案,其中包含了到目前为止在其他答案中提到的工具的集合

您可以尝试cscope!维基百科说

通常用于搜索C或C++文件中的内容,但它可以用来搜索其他语言的内容,如java、python、php和perl。
您也可以深入研究。

我认为,它允许您跳转到python函数defs。

这是主观的,所以我认为它应该是一个社区wiki。也就是说,要浏览大型项目,最好的方法可能是熟悉您喜爱的IDE中提供的热键。使用键盘浏览大型源代码比手动滚动文本、突出显示文本和用鼠标在IDE中摸索要容易得多

边走边记录。留下痕迹,改进结构,记笔记。当你找到了输入代码库时,你会有一个很好的地图。

我喜欢这个插件。这种组合对我来说非常有用。

许多(或者我应该说是大多数)IDE都可以帮助您实现这一点,它允许您访问变量和函数定义,通常只需按住Ctrl键并单击,或者显示类概述,您可以在其中查看类的所有方法和属性,包括继承的方法和属性,并允许您访问它们的定义,等等,等等,等等。我不能高度推荐这样一个工具,它非常节省开发时间


我个人使用WingIDE,它非常优秀,具有所有这些特性,但您也应该查看KomodoEdit和Eclipse+PyDev。可能还有更多我不知道的东西,而且vim和emacs完全有可能为此提供了某种插件。

以下是其他答案中提到的工具集合

cscope

维基百科条目:

cscope是控制台模式或基于文本的图形界面。。。它通常用于非常大的项目,以查找给定文本字符串的源代码、函数、声明、定义和正则表达式

肾盂

生成Python源树的cscope索引

ctags和旺盛的ctags

维基百科条目:

Ctags是一个程序,它生成各种编程语言的源文件和头文件中的名称的索引(或标记)文件。根据语言的不同,可以对函数、变量、类成员、宏等进行索引。这些标记允许文本编辑器或其他实用程序快速、轻松地定位定义

日食:

维基百科条目:

Eclipse是一个多语言软件开发平台,包括一个IDE和一个扩展它的插件系统。它主要是用java编写的,可以用来开发java中的应用程序,并通过各种插件,用其他语言,包括C、C++、COBOL、Python、Perl、PHP等。 皮德夫

“Pydev是一个插件,使用户能够使用Eclipse进行Python和Jython开发——使Eclipse成为一流的Python IDE”

科莫多编辑

维基百科条目:

Komodo Edit是2007年1月推出的动态编程语言的免费文本编辑器。随着版本4.3的发布,Komodo Edit构建在开放的Komodo项目之上

它是为需要具有广泛功能的多语言编辑器的程序员开发的,但不需要IDE的功能,如调试、DOM查看器、交互式shell和源代码控制集成

Prashanth的调用图(可视化)工具

我只是想分享一个链接,链接到我很久以前发现的一个有趣的小脚本,它绘制了函数调用图。它只适用于简单的情况,所以“按原样”它更有趣而不是有用

绳索/绳索

Ropemacs是一个用于在emacs中执行python重构的插件。它使用库和pymacs

翼侧

WingIDE具有goto定义、查找使用、源代码浏览器、重构和其他代码智能功能,这些功能应该会有所帮助。理解不熟悉的Python代码的另一个好方法是设置断点,在调试器中运行该断点,然后在堆栈上下移动。在Wing Professional中,您还可以使用Debug Probe在调试运行时状态(它是在当前调试堆栈框架的上下文中运行的Python shell)中进行交互和尝试

是否有一个工具可以给定一个函数x(),列出调用x()和被x()调用的函数

我只是想和大家分享一个我很久以前发现的有趣的小脚本的链接。它只适用于简单的情况,所以“按原样”它更有趣而不是有用


对于普通的Python开发,我个人使用(找到一个显示特性的示例),有时也使用。

您应该注意到,cscope只针对UNIX、Linux和OSs