Pylint

时间:2016-10-30 23:09:22

标签: python pylint

我有一个名为main.py的文件,其中包含以下代码:

#!/usr/bin/env python3

import utils.stuff

if __name__ == "__main__":
    print("hi from main.py")
    utils.stuff.foo()

main.py的目录中,我有一个名为utils的子目录,其中有一个名为stuff.py的文件,其代码如下:

print("hi from stuff.py")

def foo():
    print("foo")

如果我从命令行运行./main.py,我会得到以下输出:

hi from stuff.py
hi from main.py
foo

这正是我所期待的。但是,如果我运行pylint main.py,我会得到以下输出:

No config file found, using default configuration
************* Module main
C:  1, 0: Missing module docstring (missing-docstring)
E:  3, 0: No name 'stuff' in module 'utils' (no-name-in-module)
E:  3, 0: Unable to import 'utils.stuff' (import-error)
E:  7, 4: Module 'utils' has no 'stuff' member (no-member)

之后是一些与我的问题无关的更详细的统计数据。为什么会这样?我该怎么做才能让Pylint知道utils/stuff.py?我正在运行Python 3.5.2,Pylint 1.6.4和OS X 10.11.6。

2 个答案:

答案 0 :(得分:15)

您需要创建utils/__init__.py。这将使python知道子模块,并允许您运行导入时想要发生的任何代码。如果您不想运行任何内容,则只需添加文档字符串。

答案 1 :(得分:0)

我的函数命名为start时出现此错误:

from views import start

当我更改函数名称时,它就起作用了。