首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载自定义pylint插件

加载自定义pylint插件
EN

Stack Overflow用户
提问于 2021-12-06 16:47:16
回答 1查看 524关注 0票数 1

我试图编写简单的pylint插件,但得到以下错误,任何输入。

__init__py

代码语言:javascript
复制
"""
Register all plugin
"""
#!/usr/bin/env python


    from .check_os_walk import check_os_walk
    
    def register(linter):
        """
        entry point for pylint
        :param linter: linter obj
        :return:
        """
        linter.register_checker(CheckOswalk(linter))

check_os_walk.py

代码语言:javascript
复制
#!/usr/bin/env python
import astroid
from pylint.checkers import BaseChecker, utils
from pylint.interfaces import IAstroidChecker


class CheckOswalk(BaseChecker):
    __implements__ = (IAstroidChecker,)

    name = 'no-need-to-call-os-walk'

    msg = {'R100': ('please avoid using os.walk',
                       'os.walk_used',
                       'os.walk use unless it is needed and prefer os.scandir in python3')}

    def visit_name(self, node):
        print(node.parent)
        self.add_message('os.walk_used', node)

dir_traversal.py“遍历目录”“

代码语言:javascript
复制
#!/usr/bin/env python
import os


def main():
    """
    print directory
    :return:
    """
    cwd = os.getcwd()
    for root, dirs, files in os.walk(cwd, topdown=False):
        for name in files:
            print(os.path.join(root, name))
        for name in dirs:
            print(os.path.join(root, name))


if __name__ == "__main__":
    main()

--load-plugins=$PWD/'init.py‘

命令venv/bin/pylint dir_traversal.py错误:

代码语言:javascript
复制
venv/lib/python3.6/site-packages/pylint/lint/pylinter.py", line 613, in load_plugin_configuration
    self.add_message("bad-plugin-value", args=(modname, e), line=0)
  File "venv/lib/python3.6/site-packages/pylint/lint/pylinter.py", line 1527, in add_message
    end_col_offset,
  File "venv/lib/python3.6/site-packages/pylint/lint/pylinter.py", line 1456, in _add_one_message
    self.stats.increase_single_module_message_count(self.current_name, msg_cat, 1)
  File "venv/lib/python3.6/site-packages/pylint/utils/linterstats.py", line 296, in increase_single_module_message_count
    self.by_module[modname][type_name] += increase
KeyError: None
EN

回答 1

Stack Overflow用户

发布于 2021-12-07 10:33:26

在您的__init__.py中,没有定义CheckOswalk。它不会崩溃,因为register函数似乎也从未被调用过。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70248943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档