精华内容
下载资源
问答
  • pyDev

    2011-01-26 11:30:00
    pyDev

    PyDev 简介

    2003年7月16日,以 Fabio Zadrozny 为首的三人开发小组在全球最大的开放源代码软件开发平台和仓库 SourceForge 上注册了一款新的项目,该项目实现了一个功能强大的 Eclipse插件,用户可以完全利用 Eclipse 来进行 Python 应用程序的开发和调试。这个能够将 Eclipse当作 Python IDE 的项目就是 PyDev。

    PyDev 插件的出现方便了众多的 Python 开发人员,它提供了一些很好的功能,如:语法错误提示、源代码编辑助手、Quick Outline、Globals Browser、Hierarchy View、运行和调试等等。基于 Eclipse 平台,拥有诸多强大的功能,同时也非常易于使用,PyDev 的这些特性使得它越来越受到人们的关注。

    如今,该项目还在不断地推进新的发布版本,目前最新的版本是2008年10月3日发布的1.3.22。本文接下来将介绍 PyDev 的安装配置方法,并在此基础上详细介绍如何使用 PyDev把 Eclipse 当作 Python IDE 进行Python的开发和调试。


    PyDev 安装和配置

    安装 PyDev

    在安装 PyDev 之前,要保证您已经安装了 Java 1.4 或更高版本、Eclipse 以及 Python。接下来,开始安装 PyDev 插件。

    1. 启动 Eclipse,利用 Eclipse Update Manager 安装 PyDev。在 Eclipse 菜单栏中找到 Help栏,选择 Help > Software Updates > Find and Install。
    1. 选择 Search for new features for install,然后单击 Next。在显示的窗口中,选择 new remote site。此时,会弹出一个对话框,要求输入新的更新站点的名称和链接。这里,名称项输入 PyDev,当然,您也可以输入其他的名称;链接里输入http://www.fabioz.com/pydev/updates ,也可以填http://pydev.sourceforge.net/updates 。然后,单击 Ok。


    图 1. 新的更新站点
    新的更新站点

    1. 这样,一个新的 PyDev 的站点就建好了,选择该站点,然后 Finish。接下来,Eclipse 的Update Manager 将会在刚才输入的站点中搜索安装包,选中搜索出的结果 PyDev,并单击 Next。


    图 2. 安装 Pydev
    安装 Pydev

    1. 阅读许可证条款,如果接受,则可单击 Next。进入安装路径选择界面,使用默认设置,然后 Finish。
    1. Eclipse Update Manager 将下载 PyDev,您可以从 Eclipse 任务栏中看到下载的进度。下载完后,显示一个需要您确认是否安装的界面,单击 Install All 便开始安装了。

    安装完后,需要重启 Eclipse 使安装生效。

    验证是否成功安装 PyDev

    如何才能验证 Eclipse Update Manager 是否已经成功安装了所需的 PyDev 插件了呢?

    选择 Help->About Eclipse SDK->Plug-in Details,将会出现 About Eclipse SDK Plug-ins 窗口,该窗口里列出了所有已经安装了的 Eclipse 插件。检查一下在 Plug-in Id 一栏中是否至少有五个以上分别以 com.python.pydev 和 org.python.pydev 开头的插件。如果是,那么 PyDev已经被成功安装,否则,安装出了一些问题,需要根据具体问题来做具体的分析。


    图 3. 验证 PyDev 插件
    验证 PyDev 插件

    配置 PyDev

    安装好 PyDev 之后,需要配置 Python/Jython 解释器,配置过程很简单。

    在 Eclipse 菜单栏中,选择 Window > Preferences > Pydev > Interpreter - (Python/Jython),在这里配置 Python/Jython 解释器,下面以 Python 为例介绍如何配置。

    首先需要添加已安装的解释器。这里,Python 安装在 C:/Python25 路径下。单击 New,选择 Python 解释器 python.exe,打开后显示出一个包含很多复选框的窗口,选择需要加入系统 PYTHONPATH 的路径,单击 Ok。


    图 4. 配置 PyDev
    配置 PyDev

    接下来,检查一下配置的结果是否正确。

    在 System PYTHONPATH 里,检查是否包含配置过程中加入的那些路径。这里列出了所有的系统所需的库文件夹。

    另外,在 Forced builtin libs 里,列出了 Python 的内置库。对于 Python 而言,这样的内置库大约有50个,而对于 Jython 来说,则有30个左右。

    这样,Python 解释器就配置好了。


    PyDev Package Explorer

    创建项目

    在开展工作之前,需要创建一个新的项目。在 Eclipse 菜单栏中,选择 File > New > Project > Pydev > Pydev Project,单击 Next。


    图 5. 创建 Pydev 项目
    创建 Pydev 项目

    这时,显示出 Pydev Project 窗口,输入项目名称、选择工作路径、选择 Python 解释器的版本类型并选中复选框,然后单击 Next,进入关联项目的窗口,如果不需要关联其他项目,则可以直接单击 Finish,完成项目的创建。

    创建 Python 包和模块

    接下来,在刚创建的项目中开始创建 Python 包和模块。

    1. 进入 Pydev 透视图,在 Python Package Explorer 中,右键单击 src,选择 New->Pydev Package,输入 Package 名称并单击 Finish,Python 包就创建好了,此时,自动生成__init__.py 文件,该文件不包含任何内容。

    注意:如果在创建项目的时候没有选中“Create default src folder and add it to the pythonpath”复选框,则需要通过 File > New > Other > Source Folder 手动创建一个源代码文件夹。

    1. 创建完 Pydev Package 后,右键单击创建的包,选择 New->Pydev Module,输入模块名称,单击 Finish。这样,Python 模块就建成了。

    编辑源程序

    对于源程序的一些基本编辑方法,就不做介绍了。下面介绍几点 Pydev 提供的非常实用的编辑功能。

    1. 语法错误提示

    Python 开发者在创建修改程序的过程中,如果能及时发现编辑过程中出现的语法错误,无疑对整个项目开发的质量和进展都是非常重要的。在 Python 透视图中,Pydev Package Explorer 中列出了项目的源代码,双击其中某一个 Python 文件,如果该文件包含语法错误,错误会以很醒目的方式展现出来。


    图 6. Pydev 文件语法错误提示
    Pydev 文件语法错误提示

    如果想把整个项目中所有包含语法错误的文件显示出来,可以从 Python 透视图自由切换到 Java 透视图。在 Java Package 里,一个个醒目的小红叉标记了所有包含语法错误的 Python文件。


    图 7. Pydev 项目语法错误提示
    Pydev 项目语法错误提示

    1. 源代码编辑助手 (Content Assistents)

    源代码编辑助手 (Content Assistents,以下简称 CA),顾名思义,即用于帮助开发者编辑源程序,它提供了诸多方便实用的功能,引导开发者进行高效快速的项目开发。

    通过快捷键 Ctrl+1 可以激活 CA,它支持的功能如下:

    PyDev

    1. Move import to global scope
    2. Create docstring
    3. Assign result to new local variable (or field)
    4. Assign parameters to attributes
    5. Surround code with try..except or try..finally

    PyDev Extensions

    1. Make import for undefined token
    2. Ignore error
    3. Don't analyze module

    在安装 PyDev 时,PyDev 和 PyDev Extensions 包都已安装,所以 CA 的这几大功能现在都支持。首先,先介绍如何使用 PyDev 包含的 CA 功能。

    • PyDev 的 CA 功能
    1. Move import to global scope

    以如下代码为例,将光标移至 import sys 后,启动快捷键 Ctrl+1 激活 CA,”Move import to global scope” 出现在标签中,按 Enter 应用此功能。如果不想应用该功能,可以按 Esc 键取消。

    #!/usr/bin/python –u
    sys.path.append(“./VirtualFS”)
    import sys

     

    应用该功能后,import sys 被成功移至全局范围内,消除了之前的错误。改变后的代码如下。

    #!/usr/bin/python –u
    import sys
    sys.path.append(“./VirtualFS”)

     

    1. Create docstring

    Create docstring 功能可以自动为函数添加参数注解。将光标移至如下代码行,启动快捷键Ctrl+1 激活 CA,标签栏中出现 ”Make docstring”。

    def __init__(self, dbUser, dbPswd, dbHost):

     

    按 Enter 应用该功能后,自动为该函数添加了参数注解。

    def __init__(self, dbUser, dbPswd, dbHost):
    '''

    @param virtualOperator:
    @param database:
    @param hostname:
    @param workDir:
    '''

     

    1. Assign result to new local variable (or field)

    CA 还提供一种功能能够将函数返回结果赋给新的内部变量。以函数 callMethod 为例,将光标移至 a.callMethod() 行激活 CA。

         def method (self, a):
    a.callMethod()

     

    选择 ”Assign to field(self, callMethod)” 或者 ”Assign to local(callMethod)”,可以将a.callMethod() 结果赋给新的内部变量 self.callMethod,改变后的代码如下。

         def method (self, a):
    self.callMethod = a.callMethod()

     

    1. Assign parameters to attributes

    在程序编辑过程中,如果需要把函数参数赋给变量,可以使用 CA 的 Assign parameters to attributes 功能自动完成这样的需求。将光标移至函数 m1 所在行,激活 CA。

        class Foo(object):
    Def m1(self, a, b):

     

    在标签栏中选择 ”Assign parameters to attributes”,自动生成两行代码将参数 a,b 赋给同名变量。

    class Foo(object):
    def m1(self, a, b):
    self.a = a
    self.b = b

     

    1. Surround code with try..except or try..finally

    对可能产生异常的代码,要进行异常捕获,通常使用 try..except 或者 try..finally 语句来捕获异常。选中一段代码 print usage,激活 CA 的 ” Surround code with try..except or try..finally”功能,可以自动对 print usage 进行异常捕获。

     import sys
    def method (self, usage):
    try:
    print usage
    except:
    raise

     

    下面,再介绍 PyDev Extensions 包含的 CA 功能是如何被运用的。

    • PyDev Extension 的 CA 功能
    1. Make import for undefined token

    以如下一段代码为例,xmlreader 未定义,语法分析出错。

         class Test:
    def method(self):
    xmlreader

     

    将鼠标移至出错行,启动快捷键 Ctrl+1 激活 CA,选择标签栏中的 ”Import xmlreader(xml.sax)”,自动生成一行代码 from xml.sax import xmlreader,语法错误消除。

    from xml.sax import xmlreader
    class Test:
    def method(self):
    xmlreader

     

    1. Ignore error

    仍以上述代码为例,由于 xmlreader 没有被定义,包含语法错误,在这一行激活 CA,选择 ”UndefinedVariable”,语法错误被忽略,xmlreader 后自动生成一行注释标明 ”#@UndefinedVariable”。

      class Test:
    def method(self):
    xmlreader #@UndefinedVariable

     

    1. Don't analyze module

    语法分析器可以帮助显示包含语法错误的代码,但在程序编辑过程中,有时候需要刻意取消对程序的语法分析,CA 的 Don't analyze module 提供了这样的功能。

    将光标移至程序第一行,激活 CA,选择 ”@PydevCodeAnalysisIgnore”,自动生成一行代码 ”#@ PydevCodeAnalysisIgnore”,忽略对程序体的语法分析。

    #@PydevCodeAnalysisIgnore
    class Test:
    def method(self):
    xmlreader

     

    1. Quick Outline

    对特定的 Python 文件,Pydev Extensions 提供的 Quick Outline 能最简单快捷地获取该文件的组织结构,并能在该文件中方便地查询定位所需信息。

    在 Pydev 透视图中,选择 Source -> Show Quick Outline,或者使用快捷键 Ctrl+O 启动该功能。

    Python 文件的类、函数等组织架构便以树状形式被形象地展现出来。同时,Filter 提供了查询定位的功能,可以方便地查询所需信息并定位到相应的代码段。


    图 8. Quick Outline
    Quick Outline

    1. Globals Browser

    Globals Browser 是 Pydev Extensions 提供的另外一种强大的查询定位功能。它可以查询定位整个工程内的一些定义和属性,包括:

    1.  
      • 类定义
      • 方法定义
      • 全局变量
      • 类以及实例属性

    通过三种方式可以启动该功能。

    • 在 Pydev 透视图中,从菜单栏中选择 Pydev -> Globals Browser。


    图 9. 菜单栏启动 Globals Browser
    菜单栏启动 Globals Browser

    • 在Pydev 透视图中,工具栏有如下的一个小图标,鼠标移至该图标上方,显示 ”Pydev: Globals Browser” 标注。点击该图标按钮,可以启动 Globals Browser 功能。


    图 10. 工具栏启动 Globals Browser
    工具栏启动 Globals Browser

    • 通过快捷键 Ctrl + Shift + T,可以快速启动 Globals Browser 功能。

    在 Filter 中输入所要查询的定义、变量或者属性,Globals Browser 可以快速地定位到相应的代码段。


    图 11. Globals Browser
    Globals Browser

    1. 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 中,按住鼠标右键,并相左或向右移动鼠标,层次图则会相应地缩小或放大。
    • 在 Hierarchy View 中,按住鼠标左键移动鼠标,层次图则会被随意拖动到相应的位置。

    运行和调试

    运行程序

    要运行 Python 源程序,有两种方法可供选择。下面以一段代码 example.py 为例介绍这两种运行方式。

    • 在 Pydev Package Explorer 中双击 example.py,选择 Run -> Run As -> Python Run。程序example.py 立即被运行,在控制台 Console 里显示出程序的执行结果。


    图 13. Python 程序及运行结果
    Python 程序及运行结果

    • 在 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
    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 中显示代码覆盖率
    在 Code Coverage Results View 中显示代码覆盖率

    代码运行过程中的覆盖情况很清楚地显示在右栏中。

    双击左栏中的 example.py,没有覆盖到的代码便在编辑器中以醒目的错误标志被标注出来。


    图 16. 以错误标志显示没有被覆盖到的代码
    以错误标志显示没有被覆盖到的代码

    如果关闭 Code Coverage Results View 视图,代码的覆盖信息并没有丢失,重新打开该视图同样可以显示出这些信息。只有通过单击左栏的 “Clear coverage information!” 按钮,才可以清除程序运行后得到的这些覆盖信息。

    调试程序

    调试是程序开发过程中必不可少的,熟练掌握调试技能是开发者进行高效开发的前提和基础。下面仍以 example.py 为例,介绍如何使用 Pydev 的调试功能。

    调试需从添加断点开始,有三种方式可以设置断点。

    • 双击编辑器中标尺栏左边灰白的空白栏,在某行添加断点。


    图 17. 双击标尺栏左边灰白的空白栏添加断点
    双击标尺栏左边灰白的空白栏添加断点

    • 鼠标右键单击标尺栏,在弹出的菜单栏中选择 ”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 面板中显示表达式值
    Expression 面板中显示表达式值

    如果想要在满足一定条件下已经添加的断点才有效,可以设置断点的属性。在编辑器的标尺栏中单击鼠标右键,弹出的菜单栏中选择 Breakpoint Properties。在显示的窗口中,选中复选框 ”Enable Condition”,输入需要满足的条件,单击 Ok。


    图 22. 设置断点属性
    设置断点属性

    这样,当重新执行程序调试的时候,只有满足条件的情况下,该断点才有效。


    总结

    Pydev 结合 Ecplise 实现了如此功能强大且易用的 Python IDE,本文不能一应俱全地介绍出来,对于一些基本的功能没有做过于详尽的介绍,主要突出 Pydev 特有的一些功能。Pydev for Eclipse 的出现为 Python 开发人员实现高效的项目开发提供了很好的条件,该项目也在不断的发展之中,其功能将会越来越强大。

     

    参考资料

    • Python 专题 包括了可爱的 Python 系列、Python 探索系列、Python 扩展、使用 Python 进行各种应用开发等等。
    • 查看 “Eclipse 推荐读物列表 ”。
    • 在 developerWorks 上浏览所有 Eclipse 内容
    • 您是 Eclipse 新手吗?阅读 developerWorks 文章 “Eclipse 平台入门 ” 以了解它的起源和架构,以及如何用插件扩展 Eclipse。
    • 查看 IBM developerWorks 的 Eclipse 项目资源 ,提高您的 Eclipse 技巧。
    • 访问 developerWorks 开放源码专区 ,获得丰富的 how-to 信息、工具和项目更新,帮助您用开放源码技术进行开发,并与 IBM 产品结合使用。
    展开全文
  • pydev

    2009-06-22 21:41:49
  • PyDev

    2013-05-02 17:01:25
    ,并选择 PyDev(请参阅图 1),便可访问 PyDev 选项。第一组选项可以改变 PyDev 在源代码中处理制表符的方式,还可以改变语法元素的颜色。   PyDev Debug 选项可以选择 Python 解释器,供执行...

    多年以来, Java 语言和 Python 阵营之间一直存在大量的异花授粉现象。在这方面作出突出表率的可能是 Jython。这是一个纯粹用 Java 实现的 Python 运行时环境。按照这一说法,您将研究如何用 Eclipse IDE 和 Ant 构建与部署工具实现 Python 开发。Eclipse 和 Ant 是非常流行的工具,它们特性丰富、可扩展性强、而且开放源代码;Python 也具有相同的品质。PyDev 和 PyAntTasks 分别是 Eclipse 和 Ant 的扩展,有了它们就可能用这些 Java 工具开发 Python。本文从下载安装所需的工具与扩展开始讲起。为了解释如何在 Python 开发中使用 Eclipse 和 Ant,我将用实际的 Python 代码例子读取 RSS 资源。

    本文不会涉及 Eclipse、Ant、Python 的细节。有关这些话题的深入讨论,请参阅 参考资料 一节中的链接。

    本文用到的软件都在 CPython 2.3 下测试过。除了几个异常情况之外,应该也能在 Jython 中运行。特别需要指出,PyDev 调试器目前不支持 Jython。另一个区别是通过 Jython 执行的脚本在从 PyDev 中运行之后就转入交互模式,这样就必须手动杀死。PyDev 编辑器与 Jython 的源代码兼容,Python Ant 任务除 py-doc 任务之外也和 Jython 兼容。



    Eclipse 是一个 Java 技术集成开发环境,由 IBM 开发,并开放其源代码。它是 IBM 商业软件 WebSphere Application Development 环境以及其他多种工具的基础。Eclipse 的开发社区非常活跃,他们不仅开发 Eclipse 本身,还开发大量的插件供 Eclipse 使用。有关 Eclispe 和 Eclipse 插件的 Web 站点,请参阅 参考资料 一节中的链接。尽管从传统上讲 Eclipse 是一种 Java 开发工具,但是一些插件的存在使得在 Eclipse 中开发其他语言的程序成为可能,如 C/C++、Python 和 Perl。

    在 Eclipse 中,源代码被组织到项目(project)中。项目可以加载、卸载和导入。Eclipse 用户界面的结构划分为视图(View)与编辑器(Editor)。视图与编辑器的例子包括:源代码大纲视图、Java 源代码编辑器、Python 源代码编辑器和文件系统导航视图。Eclipse 用户界面中最关键的隐含概念就是 视角(perspective)。视角是通常在执行某种类型活动时一起使用的一组视图。Eclipse 中的标准视角包括:Debug、Java Browsing、Java、Java Type Hierarchy、Plug-in Development、CVS Repository Exploring、Resource 和 Install/Update。目前还不存在单独的 Python 视角。在进行 Python 开发时,我通常使用 Resource 视角和 Debug 视角。

    首先,从 Eclipse Web 站点上下载 Eclipse(请参阅 参考资料 一节中的链接),并根据您的平台,按照下面的安装指南安装 Eclipse:

    Eclipse 的更新机制使 PyDev 插件的安装更加容易。从 Eclipse 中选择 Help > Software Updates > Update Manager,启动 Install/Update 视角。在左下角的 Feature Updates 视图中,将 PyDev 插件更新站点作为新的 Site Bookmark 添加到“Sites to Visit”文件夹下。Eclipse 的 PyDev 更新站点 URL 为 http://pydev.sf.net/updates/或http://pydev.org/updates   或   http://pydev.org/nightly。现在,Feature Updates 编辑器中应该显示出“PyDev”这一特性。在 Feature Updates 编辑器中,展开 PyDev > Other,选择其中显示的 PyDev 特性(至少应该是 0.4.1)。然后选择 “Install Now”安装该特性。Eclipse 将下载 PyDev 插件,并将其安装到 Eclipse 中。

    为访问本项目中使用的样例代码,可先下载 zip 文件(请参阅 参考资料一节),在文件系统中展开该 zip 文件,然后将其中的项目导入 Eclipse。导入项目的方法是先切换到 Resource 视角,选择 File > Import,再选择“Existing Project into Workspace”,然后选择您展开 zip 文件的位置。这时,Navigator 视图中应该出现 feedParserTest 项目。

    样例项目中已经包含了 Fead Parser 通用资源解析库,该库按 Python 开放源代码许可协议发布。有关 Feed Parser 项目 Web 网站的链接,请参阅 参考资料 一节。



    现在开始学习如何通过已导入的项目了解 PyDev 的特性。PyDev 正处于开发过程中,但已经是非常高效的 Python 开发环境。现在的 PyDev 主要包括以下特性:

    • 包含 Python 语法高亮显示特性的 Python 编辑器。
    • 进行 Python 语法分析,并在 Python 编辑器和 Tasks 视图中高亮显示错误。
    • 可将制表符转换成空格的选项。
    • Outline 视图显示导入的库、类以及函数。
    • 终端视图中的 Python 堆栈跟踪信息可超链接到源代码中。
    • 源代码内部的超链接;同一模块内的导入和函数调用可通过超链接进行导航。
    • 从 Navigator 视图中运行 Python 脚本的能力。
    • 调试器支持断点、代码单步执行以及显示变量的值。

    通过 Window > Preferences,并选择 PyDev(请参阅图 1),便可访问 PyDev 选项。第一组选项可以改变 PyDev 在源代码中处理制表符的方式,还可以改变语法元素的颜色。



    PyDev 选项窗口 

    PyDev Debug 选项可以选择 Python 解释器,供执行 Python 代码时使用。如果 PyDev 无法找到 Python 解释器,或者想使用别的解释器,可在此设置(请参阅图 2)。



    PyDev Debug 选项 

    我的大部分 Python 工作都是在 Resource 视角中完成的。使用方法是先切换到 Resource 视角,然后在左上角的 Navigator 视图中双击 feedParserTest/src/feedparserTest/FeedparserTest.py 文件。Python 编辑器打开该文件,对 Python 语法进行解析,完成设置颜色和语法检查的工作(请参阅图 3)。



    Python 编辑器 

    如果源代码中有任何错误,则显示在右下角的 Tasks 视图中显示出来。双击 Tasks 视图中的错误,便可找到那条讨厌的代码行。

    Outline 视图在左下角,其中用一种便于浏览的结构显示出当前正在编辑的文件。导入的库、类、函数全都显示出来,通过双击 Outline 视图中的项目,便可以实现导航。PyDev 在编辑 Python 文件的过程中对齐进行预先解析的工作,同时更新 Outline 视图,执行语法检查,并用不同颜色显示语法元素。

    PyDev 0.4 版在 Python 源代码编辑器中为函数和导入库加入了超链接的特性。如果在越过某项导入或函数调用(必须在 PYTHONPATH 目录中)的同时按下 Control 键,PyDev 就能显示出一个超链接,这样您可以在导入库或函数的源代码之间导航。请注意,为了在您自己的源代码中跨模块使用该特性(从一个模块链接到另一个模块),必须修改 PYTHONPATH 环境变量,在其中加入这些模块,这样 PyDev 就可以找到它们了。

    人们已经开始将一些优异的源代码编辑特性加入最新版本的 PyDev 中,其中就包括代码块注释与取消注释,以及代码左右移位(请参阅图 4)。



    PyDev 编辑器的其他特性 

    如果不能执行代码,那么 IDE 也不是太有用。为执行 Python 代码,可从 Navigator 视图中选择 feedparser.py 文件,用右键点击,然后选择 Python > Run。随后会显示 Python 的启动配置窗口(请参阅图 5)。



    Python 启动配置 

    Python 启动配置窗口中可以定义脚本执行的当前目录,传递给脚本的参数,以及用哪一个 Python 解释器运行脚本。feedparser.py 以一个 RSS URL 作为参数,所以可在参数字段中填入 URL,如 http://www.ibm.com/developerworks/news/dw_dwtp.rss。其余的缺省定义就可以了,所以单击 Run

    脚本执行时输出信息显示在 Console 窗口中。如果有错误出现,Console 窗口中将显示堆栈跟踪信息,其中的每一行都可以通过超链接找到 Python 源代码。

    Python 调试器是最近才加入 PyDev 插件中的。要使用调试器,可在 Python 编辑器中想中断的代码行的左侧点击,设置断点。在图 6 中,我在 feedparser.py 的 1830 行处设置了断点。然后在 Navigator 视图中选择这个 Python 模块,点击右键,选择“Python > Debug...”。这时将显示与前面相似的一个启动配置窗口。点击 Debug 进入 Debug 视角,同时启动调试器。



    Python 调试器 

    左上角的 Debug 视图显示当前正在执行的进程和线程,右上角的 Variables 视图显示当前运行域中的所有变量,Python 编辑器会显示调试器目前停在哪条语句上,同时所有的输出信息都显示与 Console 视图中。调试器可以通过 Debug 视图底部的按钮或 Run 菜单进行控制。

    Eclipse 及其插件还具备很多其他的特性,可应用于 Python 开发中,如 XML 编辑器、UML 编辑器(不过大多数是以 Java 代码为中心),还有资源控制方面的插件。目前 Eclipse 插件站点上列出的插件几乎有 500 个(请参阅 参考资料 一节中的相关链接)。我将着重介绍一个对很多 Python 开发人员都特别有用的插件:Eclipse 发行版中已经包括的 CVS 插件,不过不会讨论细节内容。

    Eclipse 中包括特性丰富的集成 CVS:

    • 支持 SSH、pserver、ext 等连接方法。
    • 基本 CVS 命令的支持:检出项目、提交变更、更新、向.cvsignore 中增加文件或模式等等。
    • 文件合并查看。
    • 在源代码控制中实现对文件不同之处的比较。
    • 项目同步,并用资料库显示出删除和新增的内容。

    还可以通过提供其他插件来支持其他源代码控制系统,如 ClearCase、Subversion、Visual SourceSafe 等。



    Python 解释器支持 Python 代码的交互式执行。这种方式对于调试一段代码是非常有用的,因为不用把代码放进 Python 脚本中并执行脚本了。同时,Python 解释器的交互模式可以很容易地集成到 Eclipse 中。

    要增加对 Python 交互式执行的支持,可通过 Run > External Tools > External Tools 增加一个 External Tool 启动程序。这时将打开 External Tool 启动程序配置窗口。在 Configurations 列表中选择“Program”,然后点击“New”创建一个新的配置。将该配置命名为诸如 "pythonInteractive" 之类,然后设置 Location,令其指向您的 Python 解释器,接着,将 "-i" 作为唯一的参数传递进来(请参阅图 7)。

    在 Common 选项卡下,选中复选框,使该配置在 External Tools 收藏夹菜单中显示出来。



    Python 交互方式配置 

    要运行刚刚在 Eclipse 中创建的启动器,可选择 Run > External Tools > pythonInterpreter。Python 解释器的输出显示在 Console 视图中。Console 中可输入 Python 命令并执行,就像从命令行中执行 Python 一样。为导入并在交互模式下使用模块,您需要将模块的位置增加到 PYTHONPATH 环境变量中。

    在 Eclipse Console 中执行 Python 与用命令行执行的不同之处在于,无法启用命令历史特性(通过向上和向下的方向键实现),因为 Eclipse Console 会自己解释这些键。



    Python 会在它需要的时候自动编译模块。这意味着 Python 开发人员通常不必显式地对模块进行编辑。即便如此,有时候手工编译 Python 代码还是很有用的,同时,构建和部署过程中还有很多其他方面的内容可以自动化实现。这也正是构建工具的用武之地。

    我将着重介绍来自 Java 编程世界中的 Apache Ant,这个工具可大量应用在 Python 开发中。Apache Ant 是 Java 编程领域内事实上的标准构建工具。它更加轻便,与 Java 技术结合得更好,可用于替代其他的构建工具。Ant 可以在支持 Java 编程语言的任何一种平台上运行。尽管我们需要的大多数构建特性 Ant 都已经提供了,但如果要将 Ant 用做 Python 构建工具,还是需要有一些关键的与 Python 相关的特性。我已经开发了若干定制的 Ant 插件(用 Ant 的行话讲叫做 task),可提供构建 Python 时需要的特定于 Python 的特性。

    Ant 用 XML 作为描述构建的格式。build 文件组织为需要执行的目标。每一个目标都可能依赖于其他的目标。Ant 将根据您所请求执行的目标,以及一组依赖目标,来执行任何需要的目标。每一个目标都可能包含任意数量的 Ant 任务,而由 Ant 任务实际执行目标的工作。Ant 有很多内置的任务,可以完成诸如编译 Java 代码、生成文档、操纵文件和目录,同时第三方又提供了很多附加的任务。

    我将通过为 feedparser 项目创建构建脚本来介绍 Ant 构建脚本和 Python Ant 任务的基础知识。为了使用 Python Ant 任务,您需要下载并安装包含这些任务的 Java 库。首先,从 参考资料 一节中列出的 URL 中下载 Python Ant 任务库(pyAntTasks.jar)。然后,将 JAR 文件拷贝到 Eclipse 的 Ant 插件下的 lib 目录中。这应该是 Eclipse 安装目录下形如 plugins/org.apache.ant_1.5.3 的子目录。

    Python Ant 任务库拷贝完毕之后,必须在 Eclipse 中启用库。选择 Window > Preferences,然后选择 Ant > Runtime。将 Ant Home Entries 展开,其中可看到 Eclipse 使用的库(JAR 文件)列表。选择“ Add JAR”,然后从 Eclipse Ant 插件的 lib 目录中选择 Python Ant JAR 文件,就可以将刚刚拷贝的 Python Ant JAR 文件加入库列表中(请参阅图 8)。



    向 classpath 中加入 Python Ant 任务 

    您现在应该能够创建和运行包含 Python 任务的 Ant 构建脚本了。下面进入构建脚本内部!

    我将逐步介绍如何创建一个简单的 Python 构建脚本(请参阅清单 1)。完整的构建脚本 build.xml 可从 feedParserTest 项目的顶层目录中找到。



    <project name="feedParserTest" default="compile">
      <taskdef resource="pyAntTasks.properties"/>
      <property name="src.dir" value="src"/>
      <target name="compile">
        <py-compile dir="${src.dir}" pythonpath="${src.dir}" optimize="0"/>
      </target>
    </project>
    

    先介绍一个只编译 Python 样例代码的构建脚本。<project> 标签总是构建脚本的根标签。<taskdef> 标签声明在整个构建脚本中使用的 Python 任务。在构建脚本的底部,可以定义 compile 目标。目标元素内部是 compile 运行期间执行的任务。特别的是 py-compile 任务,它负责从 src 目录开始,编译所有的 Python 代码。该任务会递归遍历所有的子目录,并编译所有的 Python 模块。脚本中没有采用将 src 目录硬编码到调用之处的方式,而是在构建脚本中定义了称为 src.dir 的属性。然后,在需要使用这个目录名的时候,就可以通过 ${src.dir} 来引用。

    要运行构建脚本,可从 Eclipse 中打开它。Eclipse 具有内置的 Ant 构建脚本编辑和浏览功能。Outline 视图可以显示出构建脚本的结构。在 Navigator 视图中,选择该构建脚本,用右键点击,然后选择“Run Ant...”。选择 compile 目标,然后点击“Run”。构建脚本执行过程中的输出信息应该显示在 Console 视图中,表示运行成功。

    接下来将向构建脚本中加入新的目标,用于执行 Python 脚本(请参阅清单 2)。在本例中,可以将 RSS URL 作为参数来执行 feedparser.py 脚本。



      <target name="run.feedparser" depends="compile">
        <py-run script="src/feedparser/feedparser.py" pythonpath="${src.dir}" optimize="0">
          <arg value="http://www.ibm.com/developerworks/news/dw_dwtp.rss">
        </py-run>
      </target>
    

    上面的目标以 RSS URL 为唯一的参数来执行 feedparser.py 脚本。该目标声明为依赖于 compile 目标,所以后者将首先执行。实际上这一步并不是很必要,因为 Python 会根据需要自动编译源代码。如果您执行 run.feedparser 目标,就会运行 feedparser.py 脚本,同时将 RSS 的内容输出到 Console 中。

    Python 的 API 文档编制机制与 Java 技术中的 JavaDoc 系统类似,称为 PyDoc。在构建脚本中加入清单 3 中列出的如下 XML 片断,可为所有的 Python 模块生成 PyDoc。



     1:  <property name="pydoc.dir" value="pydoc"/>
     2:
     3:  <target name="init">
     4:    <mkdir dir="${pydoc.dir}"/>
     5:  </target>
     6:
     7:  <target name="pydoc" depends="init,compile">
     8:    <py-doc pythonpath="${src.dir}" destdir="${pydoc.dir}">
     9:      <fileset dir="${src.dir}">
    10:        <include name="**/*"/>
    11:      </fileset>
    12:    </py-doc>
    13:  </target>
    

    从对上述 pydoc 目标的解析可看出,第 7 行声明了目标名称,并指出它依赖于 init 和 compile 目标。这意味着在运行 pydoc 目标之前,Ant 必须保证 init 和 compile 目标已经运行,如果没有,则首先运行这两个目标。

    pydoc 目标所依赖的 init 目标在第 3 至第 5 行定义。 init 目标仅仅创建了一个存放 PyDoc API 文档文件的目录。如前所述,要为所生成文档的保存位置定义一个属性,名为 pydoc.dir。

    第 8 行开始是 py-doc 任务。如前所述,您传入生成 pydoc 过程中所使用的 PYTHONPATH 。 destdir 属性告诉 py-doc 任务将生成的 HTML 文档输出到何处。

    第 9 至第 11 行定义了在生成文档的过程中应该处理哪些 Python 源文件。文件集是 Ant 脚本中通用的结构,可用于定义所操作的一组文件。这是一种很强大的特性,它使您能够通过名字模式、布尔逻辑和文件属性来选择所要操作的文件。Ant 文档中有这方面的完整描述。本例中递归选择了“src”目录下的所有文件。

    Python 中具有标准的单元测试框架(从 Python 2.3 开始。在 Python 2.2 中这只是可选模块),与 Java jUnit 框架十分类似。测试用例的结构与 jUnit 采用相同的方式。每一个待测试的类和模块通常都具有自己的测试类。测试类中包含测试装置(fixture),它们在 setUp 函数中初始化。每一个测试都编写为测试类中的一个独立的测试函数。unittest 框架会在测试函数之间循环往复,先调用 setUp 、再测试函数、然后清除( tearDown)测试函数。请参阅清单 4 中的样例。



    import unittest
    from pprint import pprint
    import feedparser
    class FeedparserTest(unittest.TestCase):
        """
        A test class for the feedparser module.
        """
        
        def setUp(self):
            """
            set up data used in the tests.
            setUp is called before each test function execution.
            """
            self.developerWorksUrl = "testData/developerworks.rss"       
        def testParse09Rss(self):
            """
            Test a successful run of the parse function for a
            0.91 RSS feed.
            """
            print "FeedparserTest.testParse09RSS()"
            
            result = feedparser.parse(self.developerWorksUrl)
            pprint(result)
            self.assertEqual(0, result['bozo'])
            
            self.assert_(result is not None)
            channel = result['channel']
            self.assert_(channel is not None)
            chanDesc = channel['description']
            self.assertEqual(u'The latest content from IBM developerWorks',
                chanDesc)
            
            items = result['items']
            self.assert_(items is not None)
            self.assert_(len(items)> 3)
            firstItem = items[0]
            title = firstItem['title']
            self.assertEqual(u'Build installation packages with 
                solution installation and deployment technologies',
                title)
      
        def tearDown(self):
            """
            tear down any data used in tests
            tearDown is called after each test function execution.
            """
            pass
                    
    if __name__ == '__main__':
        unittest.main()
    

    上述清单是实现 feedparser 模块基本测试功能的测试类。完整的测试类见 feedParserTest 项目下的 src/feedparserTest/FeedparserTest.py。 setUp 函数负责准备整个测试过程中需要使用的测试装置,在本例中只有测试用的 RSS 文件的目录,测试函数将对其进行解析。 testParse09Rss 是真正的测试函数。这个函数调用 feedparser.parse 函数,传递测试用的 RSS 文件,输出解析结果,并通过 TestCase 类的 assert 函数执行基本的检查统作。如果任何 assert 的求值结果不是真,或是在执行过程中抛出任何异常,unittest 就会报告一次测试失败或错误。最后的两行负责在这个测试类内部运行测试,方法是直接运行该模块即可。

    要独立运行该测试类,可以按前面所说的相同方式运行 FeedparserTest.py 模块。在 Eclipse Navigator 视图中选择 FeedparserTest.py,然后通过 Python > Run 运行。此时显示启动配置窗口。除 Base 目录之外,其他都保持缺省值即可。Base 目录必须是 feedParserTest 项目的目录,这样才能在当前目录下找到 RSS 文件(testData/developerworks.rss)。修改 base 目录的设置,然后点击“Run”。输出信息显示在 Console 上。

    您也许希望我们编写的所有单元测试都能够作为构建的一部分自动执行。将下面清单 5 所示的构建片断加入构建脚本便可实现。



    1:  <target name="tests" depends="compile">
    2:	<py-test pythonpath="${src.dir}" dir=".">
    3:  	  <fileset dir="${src.dir}">
    4:		<include name="**/*Test.py"/>
    5:	  </fileset>
    6:  	</py-test>
    7:  </target> 
    

    第一行是目标声明,这与其他的脚本相同。第 2 至第 6 行调用 py-test 任务。这部分代码将在“src”目录下查找所有以“Test.py”结尾的所有文件,并运行所有测试。 PYTHONPATH 设置为“src”,测试执行的当前工作目录就是当前目录(‘.’)。

    运行目标的方法是先运行构建脚本,再选择执行“tests”目标。该目标将运行所有以“Test.py”结尾的测试用例,本例中仅有 FeadparserTest.py。


    Eclipse 和 PyDev 插件的结合,以及 Apache Ant 与 Python Ant 任务一起使用,可以为 Python 开发提供完全集成的开发环境和构建/部署工具。这些工具尚在开发过程中,因此要经常查看是否有更新,如果您觉得特别希望看到某种特性,可以卷起袖管自力更生。

    展开全文
  • pydev-源码

    2021-03-30 09:11:32
    pydev
  • PyDev 5.7.0

    2017-04-19 06:24:29
    PyDev 5.7.0
  • PyDev 5.5.0

    2017-02-24 17:11:01
    PyDev 5.5.0
  • eclipse安装PyDev插件PyDev 7.7.0.zip,打开Eclipse,找到Help菜单栏,进入Install New Software…选项
  • PyDev 7.0.3

    2018-11-18 20:34:00
    PyDev 7.0.3,适合 JDK 1.8 以上版本、 Eclipse 4.5以上版本安装
  • PyDev 3.9.1

    2015-01-24 23:28:38
    PyDev 3.9.1
  • Pydev4.2.0

    千次下载 热门讨论 2015-07-11 16:56:31
    http://sourceforge.net/projects/pydev/files/pydev/ 中国下载较慢,如不希望浪费时间在下载上,可选择
  • PyDev 5.3.0

    2016-11-10 23:17:22
    PyDev 5.3.0
  • pydev3.4.1

    2015-06-27 03:22:28
    pydev+eclipse+python3.4 对应最新的pydev3.4.1。
  • pydev5.9.2

    2017-09-08 15:03:00
    这个是插件, eclipse+pyDev5.9.2+python2.7的搭配教程。
  • PyDev 4.5.4

    2016-02-19 13:23:23
    PyDev 是 Eclipse 的 Python IDE 插件,利用 PyDev 插件把 Eclipse 变为功能强大且易用的 Python IDE,方便了众多的 Python 开发者。
  • PyDev 6.4.4

    2019-04-07 15:57:39
    Eclipse中Python插件,版本为PyDev6.4.4,亲自导入在Eclipse Oxygen版本里使用过。
  • PyDev plugin

    2015-06-09 15:23:04
    PyDev2.7.4集成eclipse3.7.2,离线方式,eclipse根目录创建PyDev目录,将下载文件解压至该目录,在eclipse的links下创建PyDev.link文件,其内容为path=D:/eclipse/PyDev. 分享下 eclipse SDK(纯洁版) ...
  • pydev template

    2011-01-11 11:12:55
    pydev template pydev template pydev template pydev template pydev template
  • PyDev 2.8.2

    2013-12-19 22:50:10
    PyDev 2.8.2,eclipse与PyDev 2.8.2搭建python语言开发环境
  • pydev5.2.0.zip

    2018-05-15 17:46:16
    pydev 5.2 pydev 5.2 pydev 5.2 pydev 5.2 pydev 5.2 pydev 5.2 pydev 5.2
  • PyDev 2.6.0

    2012-07-29 13:04:23
    PyDev 2.6.0
  • pydev安装包

    2015-10-05 10:15:16
    安装python开发环境在eclipse中,首先需要pydev,已经安装,希望对大家有帮助!
  • PyDev 2.2.2

    2011-08-25 20:51:53
    PyDev 2.2.2
  • pydev2.8.1

    2013-08-19 01:17:43
    python开发eclipse插件 pydev2.8.1
  • PyDev 3.9.0

    2015-01-12 10:14:26
    Eclipse 的 Python开发插件,注意该版本不适合PyDev3.x+MyEclipse10开发,建议下载2.7或2.8的

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,293
精华内容 4,917
关键字:

pydev