帮助浏览/跟踪(大型)python项目源代码的工具[已关闭]

eyh26e7m  于 2022-12-21  发布在  Python
关注(0)|答案(9)|浏览(115)

要求我们推荐或查找工具、库或最喜欢的非现场资源的问题对Stack Overflow来说是离题的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,describe the problem以及迄今为止为解决该问题所做的工作。
九年前就关门了。
Improve this question
一个具体的例子:熟悉django的项目源代码(core,contrib,utils,等等)。ctags-它允许你"跳"到定义函数/方法的文件+位置。想知道开发人员使用的其他工具(例如:有没有一个工具可以给出一个函数x(),列出调用x()的函数和被x()调用的函数?)谢谢。

    • 编辑**:添加了一个答案,其中汇总了迄今为止在其他答案中提到的工具
yyhrrdl8

yyhrrdl81#

以下是其他答复中提到的工具汇总...

c示波器

http://cscope.sourceforge.net/
维基百科条目:http://en.wikipedia.org/wiki/Cscope
cscope是一个控制台模式或基于文本的图形界面......它通常用于非常大的项目,用于查找给定文本字符串的源代码、函数、声明、定义和正则表达式。

尿比重计

http://pypi.python.org/pypi/pycscope/
生成Python源代码树的cscope索引

ctags和丰富的ctags

http://ctags.sourceforge.net/
http://ctags.sourceforge.net/ctags.html
维基百科条目:http://en.wikipedia.org/wiki/Ctags
Ctags是一个程序,它可以生成一个索引(或标记)文件,该文件包含在各种编程语言的源文件和头文件中找到的名称。根据语言的不同,函数、变量、类成员、宏等可能会被索引。这些标记允许文本编辑器或其他实用程序快速方便地定位定义。

月食:

http://www.eclipse.org/
维基百科条目:http://en.wikipedia.org/wiki/Eclipse_%28software%29
Eclipse是一个多语言软件开发平台,由IDE和扩展IDE的插件系统组成。它主要用Java编写,可以用Java开发应用程序,也可以通过各种插件用其他语言开发应用程序,包括C、C++、COBOL、Python、Perl、PHP等。

PyDev

http://pydev.sourceforge.net/
“Pydev是一个插件,它使用户能够使用Eclipse进行Python和Jython开发--这使Eclipse成为一流的Python IDE”

科莫多编辑

http://www.activestate.com/komodo_edit/
维基百科条目:http://en.wikipedia.org/wiki/ActiveState_Komodo
Komodo Edit是一个用于动态编程语言的自由文本编辑器,于2007年1月推出。随着版本4.3的发布,Komodo Edit构建在Open Komodo项目之上。
它是为需要具有广泛功能的多语言编辑器的程序员开发的,但不需要IDE的功能,如调试、DOM查看器、交互式 shell 和源代码控制集成。

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

http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/
我只是想分享一个很久以前发现的有趣的小脚本的链接,这个脚本绘制了函数调用的图形,它只适用于简单的情况,所以“原样”它更有趣而不是有用。

绳索/绳缆

http://rope.sourceforge.net/ropemacs.html
Ropemacs是一个在emacs中执行python重构的插件,它使用rope库和pymacs。
http://www.enigmacurry.com/2008/05/09/emacs-as-a-powerful-python-ide/

翼IDE

http://www.wingware.com/
Wing IDE提供了goto-definition、find uses、源代码浏览器、重构和其他代码智能特性,这些特性应该会有所帮助。另一个理解不熟悉的Python代码的好方法是设置断点,在调试器中运行到断点。在WingProfessional中,你也可以使用DebugProbe与调试运行时状态进行交互和测试(它是一个Python shell,在当前调试堆栈框架的上下文中运行)。

z6psavjg

z6psavjg2#

你也许可以试试cscope!维基百科上说
cscope通常用于搜索C或C++文件中的内容,但也可以用于搜索其他语言的内容,如Java、Python、PHP和Perl。
您还可以深入了解this project

ctzwtxfj

ctzwtxfj3#

许多(甚至是大多数,我应该说)IDE都可以帮助你进入变量和函数定义,通常只需Ctrl+单击,或者显示类概述,在那里你可以看到一个类拥有的所有方法和属性,包括继承的方法和属性,让你进入它们的定义,等等,等等,等等。我怎么推荐这样的工具都不为过,它非常节省开发时间。
我个人使用的是WingIDE,它非常优秀,具有所有这些特性,但是您还应该查看KomodoEdit和Eclipse+PyDev。可能还有更多我不知道的特性,完全有可能vim和emacs具有某种插件。

ktca8awb

ktca8awb4#

我认为Komodo EditPyDev允许您跳转到python函数defs。

z5btuh9x

z5btuh9x5#

有没有一个工具可以给出一个函数x(),列出调用x()的函数和被x()调用的函数?
我只是想分享一个很久以前发现的有趣的小脚本的链接,draws a graph of function calls,它只适用于简单的情况,所以“原样”它更有趣而不是有用。
对于普通的Python开发,我个人使用GNU Emacs with rope/ropemacs(找到了一个显示特性的video),有时使用Eclipse with PyDev

rryofs0p

rryofs0p6#

这是主观的,所以我认为它应该是一个社区wiki。也就是说,你能做的最好的事情是熟悉你最喜欢的IDE中提供的热键。使用键盘浏览大型源代码比手动滚动文本,高亮文本和用鼠标在IDE中摸索要容易得多。

jhkqcmku

jhkqcmku7#

边走边用文档记录。留下痕迹,改进结构,并做笔记。当你找到你的回车代码库时,你就有了一个很好的Map。

hsvhsicv

hsvhsicv8#

我喜欢EclipsePyDev插件,这个组合对我非常有用。

hsgswve4

hsgswve49#

您应该注意到,cscope只针对UNIX、Linux操作系统。

相关问题