告诉您购买Python IDE理由所在
经过长时间学习Python IDE,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西,学习Python IDE时,你可能会遇到种种问题,这里将介绍Python IDE问题的解决方法。
WingIDE 的售价是 100 美元。BlackAdder 的售价是 80 美元(仅限在个人系统上使用)和 400 美元(可将 BlackAdder 的运行组件一同分发给其他人)。可惜的是,我发现这两种产品都不足够稳定,无法推荐给各位用于实际开发。
若是不能用于实际开发的 IDE,那么常规功能就并不值那么多。但愿这两种产品能通过新版本或修正补丁而有所提高。BlackAdder 是在 linux 和 windows 下的基于 QT 的开发环境;请参阅屏幕截图。在本专栏提到的产品中,该产品是唯一带有表单设计器的一款。
而且表单设计器自身做得很优秀(用于 PyQT 编程)。就象 Delphi、Visual Basic 和类似工具,您可以把小工具放置在面板上,在“属性”表单中调整属性与行为。元素的图标有些呆板,特别是变灰的时候,但美观并不是很重要。源代码编辑器提供代码合并和语法标签高亮显示,但没有代码自动完成提示。
BlackAdder 有个相当不错的调试器,除了缺少监视功能外其它与免费工具差不多。不幸的是,在测试 V1.0 beta 2 中,我遇到了一些严重的使用问题。我测试了 Mandrake、Slackware 以及 Windows 包(但没有测试 Debian 和 Redhat,虽然我认为 Linux 的变体只是软件包不同)。各种问题无处不在。
例如,默认字体实在太小,在 Linux 和 Windows 系统下都无法阅读。改变编辑器字体需要单调地一个个地修改 20 种语法标记元素的字体(没有许多其他编辑器和 IDE 中的“继承字体”选项)。
更糟的是在 Mandrake 7.1 和定制的 Slackware 7.1 中,当 BlackAdder 启动时,Python 解释器“意外终止”。您可以编辑文件,但无法在 IDE 下运行。我改变Python IDE的尝试 -- 指向 Python 2.0 或 Python 1.5.2 -- 成功地改变了出错信息,但并未解决问题。
而且,在 Windows 下有些 Python 脚本在 BlackAdder 中无法打开;而获得的提示是 “X 不是一个合法的 BlackAdder 文件”。该信息没有明显的规律。您有可能通过某些努力解决该问题 -- 但如果花费了 400 美元购买该产品,您一定不会有好心情来为购买的产品做调试了。
WingIDE 是个想当优秀的 IDE;请参阅屏幕截图。其编辑器包括大量语言的语法标签高亮显示,虽然它只是个面向 Python 的工具。源代码浏览器对浏览项目或模块非常实用(表现在可导航源代码和文档行摘要中)。虽然没有监视器,但调试器设计得很好。
编辑器有优秀的命令自动完成和函数跳转列表,但是没有代码合并。面向项目风格的 IDE 对于大型产品非常有用(在这方面,除了 Komodo 以外,它是大多免费 IDE 中较好的)。
总体的界面就像增强的 Idle,使用了与许多 TK 和 XWindow 界面类似的“多窗口”排列方式。我喜欢使用对接和嵌入(这方面,并不是过多使用 MS Visual Studio 造成的),但不同的开发人员可能喜欢不同风格的窗体。WingIDE 是个很有前途的开发环境。BlackAdder 甚至 WingIDE -- 我测试的 1.0 和 1.1b3 版 -- 都因存在问题而无法推荐用作重大的开发。
有许多讨厌的小地方,比如许可密钥设置过程和古怪的 -- 很可能是遗漏了 -- 工具条提示。而且,还有许多小的错误。比如缺少“打开最近文件”菜单项,因此,当程序运行时(不只是试验代码)您只能打开交互命令行解释器窗口。
但这些问题都是小问题。致命问题是 WingIDE 会在我的 Mandrake 7.1 中随机产生分割错误。一旦发生该情况一切就都完了,您将丢失正在进行的任何工作。“经常保存”是个好建议,但这并不足以使 WingIDE 完全可用。
通常认为,Python IDE是一种解释性的语言,但是这种说法是不正确的,实际上,Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine来执行这些编译好的byte code。
这种机制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级。
不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。