• Eclipse pydev 代码检查功能


    C#/Java project 在编译时就能检查代码有哪些错误. python 是动态语言, 可以认为是没有编译环节, 没有编译环节意味着我们少一个检查代码错误的机会, 这应该算是动态语言的一个缺点吧! 好在, 可以借助一些代码分析工具部分地弥补这一不足.

    这里列举一下pydev 的代码分析功能:
    ================================
    1. pydev 自带的代码分析功能 (这个功能我经常使用)
    ================================
    配置: preference 窗口 pydev/Editor/Code analysis 的前几个tab页.
    启用状态: 默认情况下, 该代码分析功能是开启的.
    多数设置我都选用默认状态, 除了Others tab, 我强化了检查的级别, 如下:
    Others tab:
        Indentation problems and mixing of tabs/spaces
        Warning  --> Error
        Redefinition of builtin sysbols
        Warning  --> Error
        
    使用方法: 在项目树的项目节点上, 弹出快捷菜单, 选 pydev/Code analysis


    ================================
    2. pep8.py 代码分析功能 (我也只是美化代码时, 才使用)
    ================================
    pydev已经集成了pep8检查工具, 并已经安装了pep3.py.

    配置: preference 窗口 pydev/Editor/Code analysis 的pep8.py tab页.
    默认情况下, 该代码分析功能是关闭的. 我也只是美化代码时, 才开启.  
    默认的pep8检查太严格了, 我一般都做一些过滤, 设置arguements为下行代码即可.

    --ignore=E123,E133,E501


    使用方法: 在项目树的项目节点上, 弹出快捷菜单, 选 pydev/Code analysis

    怎样抑制"unused variable"的warning ?
    def getPath(fullFileName):
        (dirName, fileName) = os.path.split(fullFileName)
        return os.path.normpath(dirName)
        
    分析这个代码会报"unused variable"的warning. 解决方法是:将这些变量的名称换为unused 或 dummy, 或者是unused 或 dummy 开头的标识符.  这样 code analysis 就不会报warning了.
        
    def getPath(fullFileName):
        (dirName, unused) = os.path.split(fullFileName)
        return os.path.normpath(dirName)   


    ================================
    3. PyLint 代码分析功能(配置很麻烦, 我不用它)
    ================================
    pydev 也集成了 PyLint功能, 但并没有自带pylint.py代码, 需要我们自己安装.
     
    安装: 在pypi.python.org 下载并安装Pylint和两个依赖的包
        logilab-astng, logilab-common, Pylint
        
    配置: preference 窗口 pydev/Pylint 页.
    然后, 需要pylint加到 pydev python interpreter的PYTHONPATH中.
    另外的要求是, 我们的project的源码也需是PYTHONPATH的有效模块.
     
    使用方法: eclipse 主菜单, 选择Project/Build

  • 相关阅读:
    openwrt官方固件怎么中继网络
    hibernate 映射一对多
    jsp连接access数据库
    表单判断值是否为空
    eclipse java ee jsp tomcat Server文件夹给删了,怎么办?
    Provided id of the wrong type for class pojo.Books. Expected: class java.lang.Integer, got class java.lang.Long
    myeclipse创建hibernate工程
    Caused by: java.sql.SQLException: Field 'id' doesn't have a default value
    Mac 挂载树莓派nfs
    树莓派集群实践——nfs
  • 原文地址:https://www.cnblogs.com/harrychinese/p/Python_code_analysis_by_using_pydev.html
Copyright © 2020-2023  润新知