Skip to main content
 首页 » 编程设计

python - 来自 Pylint 的 "No name in module"错误

2023年05月26日5webabcd

我有一个名为 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。

请您参考如下方法:

你需要一个创建utils/__init__.py。这将使 python 知道子模块,还允许您运行任何您希望在导入时发生的代码。如果你不想运行任何东西,那么只需包含一个文档字符串。