PyDev,在Eclipse中运行python
最近学python做高精度运算。
虽然网上有很多高精度运算的算法,可是用了一个O(n^2)的算法,C++竟然运行了半个小时,坑爹。
今天发现,python是跟我一年生的,1989,属蛇。而python的翻译也是蟒蛇。
真是太巧了!
下面这篇文章是说怎么在eclipse中运行python:
?
?
?
- 这样,一个新的 PyDev 的站点就建好了,选择该站点,然后 Finish。接下来,Eclipse 的Update Manager 将会在刚才输入的站点中搜索安装包,选中搜索出的结果 PyDev,并单击 Next。
图 2. 安装 Pydev
?
- 阅读许可证条款,如果接受,则可单击 Next。进入安装路径选择界面,使用默认设置,然后 Finish。
- Eclipse Update Manager 将下载 PyDev,您可以从 Eclipse 任务栏中看到下载的进度。下载完后,显示一个需要您确认是否安装的界面,单击 Install All 便开始安装了。
安装完后,需要重启 Eclipse 使安装生效。
?
?
接下来,检查一下配置的结果是否正确。
在 System?PYTHONPATH?里,检查是否包含配置过程中加入的那些路径。这里列出了所有的系统所需的库文件夹。
另外,在 Forced builtin libs 里,列出了 Python 的内置库。对于 Python 而言,这样的内置库大约有50个,而对于 Jython 来说,则有30个左右。
这样,Python 解释器就配置好了。
?
这时,显示出 Pydev Project 窗口,输入项目名称、选择工作路径、选择 Python 解释器的版本类型并选中复选框,然后单击 Next,进入关联项目的窗口,如果不需要关联其他项目,则可以直接单击 Finish,完成项目的创建。
?
如果想把整个项目中所有包含语法错误的文件显示出来,可以从 Python 透视图自由切换到 Java 透视图。在 Java Package 里,一个个醒目的小红叉标记了所有包含语法错误的 Python文件。
图 7. Pydev 项目语法错误提示
?
- 源代码编辑助手 (Content Assistents)
源代码编辑助手 (Content Assistents,以下简称 CA),顾名思义,即用于帮助开发者编辑源程序,它提供了诸多方便实用的功能,引导开发者进行高效快速的项目开发。
通过快捷键 Ctrl+1 可以激活 CA,它支持的功能如下:
PyDev
- Move import to global scope
- Create docstring
- Assign result to new local variable (or field)
- Assign parameters to attributes
- Surround code with try..except or try..finally
PyDev Extensions
- Make import for undefined token
- Ignore error
- Don't analyze module
在安装 PyDev 时,PyDev 和 PyDev Extensions 包都已安装,所以 CA 的这几大功能现在都支持。首先,先介绍如何使用 PyDev 包含的 CA 功能。
- PyDev 的 CA 功能
- Move import to global scope
以如下代码为例,将光标移至 import sys 后,启动快捷键 Ctrl+1 激活 CA,”Move import to global scope” 出现在标签中,按 Enter 应用此功能。如果不想应用该功能,可以按 Esc 键取消。
?- Globals Browser
Globals Browser 是 Pydev Extensions 提供的另外一种强大的查询定位功能。它可以查询定位整个工程内的一些定义和属性,包括:
- ?
- 类定义
- 方法定义
- 全局变量
- 类以及实例属性
通过三种方式可以启动该功能。
- 在 Pydev 透视图中,从菜单栏中选择 Pydev -> Globals Browser。
图 9. 菜单栏启动 Globals Browser
?- 在Pydev 透视图中,工具栏有如下的一个小图标,鼠标移至该图标上方,显示 ”Pydev: Globals Browser” 标注。点击该图标按钮,可以启动 Globals Browser 功能。
图 10. 工具栏启动 Globals Browser
?- 通过快捷键 Ctrl + Shift + T,可以快速启动 Globals Browser 功能。
在 Filter 中输入所要查询的定义、变量或者属性,Globals Browser 可以快速地定位到相应的代码段。
图 11. Globals Browser
?- Hierarchy View
当某个 python 文件包含多个类时,如何才能简单直观地了解各个类之间的依存关系?Hierarchy View 提供了这样的功能,它能将多个类之间的层次关系以树状结构直观地显示出来。
以一段 Python 代码为例,定义了 Super1, Super2, ToAnalyze 和 Sub1 四个类。在 Pydev透视图中,选择 Windows -> Show View -> Other,在弹出的 Show View 窗口中,选择 Pydev -> Hierarchy View。按快捷键 F4 激活 Hierarchy View,可以看到树状图中显示出了类间的层次关系。
图 12. 在 Hierarchy View 中显示类的层次关系
?Hierarchy View 还支持以下四个功能:
- 在层次图中,用鼠标单击某个类,图下方即显示出该类的方法。
- 如果双击某个类、方法或者属性,则会调出源程序,进入对该类、方法或者属性的编辑状态。
- 在 Hierarchy View 中,按住鼠标右键,并相左或向右移动鼠标,层次图则会相应地缩小或放大。
- 在 Hierarchy View 中,按住鼠标左键移动鼠标,层次图则会被随意拖动到相应的位置。
?
- 在 Pydev Package Explorer 中,用鼠标右键单击 example.py,在弹出的菜单栏中选择 Run As -> Python Run。同样,example.py 被执行,Console 中显示程序的执行结果。
以上两种方式是运行源程序的基本方法。Pydev 还提供一种特有的源程序运行功能 Run As Python Coverage,该功能不仅能显示出程序的运行结果,而且能将程序运行过程中代码的覆盖率显示出来。
要查看代码的覆盖率,首先需要打开 Code Coverage Results View。在 Pydev 透视图中,选择 Windows -> Show View -> Code Coverage Results View。在弹出视图的左栏中,可以看到三个按钮,”Choose dir!”, “Clear coverage information!” 和 ”Refresh Coverage infomation”。
图 14. Code Coverage Results View
?用鼠标左键单击 ”Choose dir!”,在弹出的 Folder Selection 窗口中选择需要运行的程序所在的包,单击 Ok。这样,这个包中所有的源程序便显示在左栏中。
接下来,仍以 example.py 为例,看看 Run As Python Coverage 功能展现出的结果。选择Run As -> Python Coverage,控制台 Console 中显示出了程序的运行结果。切换到刚才打开的 Code Coverage Results View 视图,单击左栏中的 example.py。
图 15. 在 Code Coverage Results View 中显示代码覆盖率
?代码运行过程中的覆盖情况很清楚地显示在右栏中。
双击左栏中的 example.py,没有覆盖到的代码便在编辑器中以醒目的错误标志被标注出来。
图 16. 以错误标志显示没有被覆盖到的代码
?如果关闭 Code Coverage Results View 视图,代码的覆盖信息并没有丢失,重新打开该视图同样可以显示出这些信息。只有通过单击左栏的 “Clear coverage information!” 按钮,才可以清除程序运行后得到的这些覆盖信息。
?
- 鼠标右键单击标尺栏,在弹出的菜单栏中选择 ”Add Breakpoint” 添加断点。
图 18. 右键单击标尺栏添加断点
?- 将鼠标移至需要添加断点的代码行,使用快捷键 Ctrl+F10,在弹出的菜单栏中选择 ”Add Breakpoint” 添加断点。
添加好断点后,选择 Debug As -> Python Run 启动调试器,弹出一个对话框,询问是否切换到调试器透视图,单击 Yes,即显示调试模式。
图 19. 调试器透视图
?程序调试过程中,常用的几个快捷键如下:
- 单步跳入 Step Into: F5
- 单步跳过 Step Over: F6
- 单步返回 Step Return: F7
- 重新开始 Resume: F8
在控制台 Console 中,显示出断点之前代码的执行结果。如果要查看某个变量的值,以变量 a 为例,可以手动在控制台中键入一行代码 ”print ‘a is:’, a”,再连续按两次 Enter 键,即显示出变量的值。
图 20. 控制台显示变量值
?在调试模式下,要查看表达式的值,选中后单击鼠标右键,选择 Watch。弹出 Expression面板,显示出了相应的变量或表达式的值。
图 21. Expression 面板中显示表达式值
?如果想要在满足一定条件下已经添加的断点才有效,可以设置断点的属性。在编辑器的标尺栏中单击鼠标右键,弹出的菜单栏中选择 Breakpoint Properties。在显示的窗口中,选中复选框 ”Enable Condition”,输入需要满足的条件,单击 Ok。
图 22. 设置断点属性
?这样,当重新执行程序调试的时候,只有满足条件的情况下,该断点才有效。
参考资料
- Python 专题包括了可爱的 Python 系列、Python 探索系列、Python 扩展、使用 Python 进行各种应用开发等等。
- 查看 “Eclipse 推荐读物列表”。?
- 在 developerWorks 上浏览所有?Eclipse 内容。
- 您是 Eclipse 新手吗?阅读 developerWorks 文章 “Eclipse 平台入门” 以了解它的起源和架构,以及如何用插件扩展 Eclipse。
- 查看 IBM developerWorks 的?Eclipse 项目资源,提高您的 Eclipse 技巧。
- 访问 developerWorks?开放源码专区,获得丰富的 how-to 信息、工具和项目更新,帮助您用开放源码技术进行开发,并与 IBM 产品结合使用。
- Python 专题包括了可爱的 Python 系列、Python 探索系列、Python 扩展、使用 Python 进行各种应用开发等等。
- 将鼠标移至需要添加断点的代码行,使用快捷键 Ctrl+F10,在弹出的菜单栏中选择 ”Add Breakpoint” 添加断点。
- 鼠标右键单击标尺栏,在弹出的菜单栏中选择 ”Add Breakpoint” 添加断点。
- 在 Pydev Package Explorer 中,用鼠标右键单击 example.py,在弹出的菜单栏中选择 Run As -> Python Run。同样,example.py 被执行,Console 中显示程序的执行结果。
- 通过快捷键 Ctrl + Shift + T,可以快速启动 Globals Browser 功能。
- 在Pydev 透视图中,工具栏有如下的一个小图标,鼠标移至该图标上方,显示 ”Pydev: Globals Browser” 标注。点击该图标按钮,可以启动 Globals Browser 功能。

?
?
?
?
?
?
?
?
?
?
?
?