windows下Python3安装PyChecker模块

1,概述

PyChecker是Python代码的静态分析工具,它能够帮助查找Python代码的bug,而且能够对代码的复杂度和格式等提出警告。

PyChecker可以工作在多种方式之下。首先,PyChecker会导入所检查文件中包含的模块,检查导入是否正确,同时检查文件中的函数、类和方法等。

PyChecker可以检查出来的问题有如下几种:

  • 全局量没有找到,比如没有导入模块
  • 传递给函数、方法、构造器的参数数目错误
  • 传递给内建函数和方法的参数数目错误
  • 字符串格式化信息不匹配
  • 使用不存在的类方法和属性
  • 覆盖函数时改变了签名
  • 在同一作用域中重定义了函数、类、方法
  • 使用未初始化的变量
  • 方法的第一个参数不是self
  • 未使用的全局量和本地量(模块或变量)
  • 未使用的函数/方法的参数(不包括self)
  • 模块、类、函数和方法中没有docstring

2,下载安装

点击下载:PyChecker模块下载链接

解压后进入文件夹,找到setup.py文件,在当前文件夹内进入DOS界面,运行python setup.py install,

报错,SyntaxError: invalid syntax

编辑器打开setup.py文件,检查代码,发现代码为py2版本,本人使用python版本为python3.5,修改python2部分代码为python3格式,修改coding为‘utf-8’,保存,重新运行python setup.py install,

成功运行,在运行结果出现多次错误信息,检查发现还是由于版本不同造成的,

windows下Python3安装PyChecker模块_第1张图片

进入Python35\Lib\site-packages\pychecker目录下,一一找到报错的py文件,打开,修改错误部分,保存,

进入python交互模式,导入PyChecker模块,成功,OK,搞定!

运行,又报错,检查错误信息,发现是py2的模块和py3的不同继续修改

msgs.py", line 11, in    import UserString 替换为 from collections import UserString

Config.py文件中, line 27, in get_warning_levels
    if (not (not (obj is not WarningClass) or not isinstance(obj, types.ClassType))中types.ClassType替换为type

Stack.py文件, line 74, in Item def setStringType(self, value = types.StringType)中types.StringType替换为bytes

python.py", line 19, types.IntType 替换为int;line 24, types.BufferType替换为memoryview;

其他的types替换省略(都是从py2替换到py3)

line110 has_key替换为__contains__,

.......(需要替换的太多了,弃用pychecker,改pylint吧)

 

参考资料:PyChecker:Python代码静态分析工具

                  python2 与 python3的区别

 

你可能感兴趣的:(Python)