我有一个main.py用以下代码命名的文件:
#!/usr/bin/env python3
import utils.stuff
if __name__ == "__main__":
print("hi from main.py")
utils.stuff.foo()
Run Code Online (Sandbox Code Playgroud)
在目录中main.py,我有一个名为的子目录utils,其子文件名为stuff.py以下代码:
print("hi from stuff.py")
def foo():
print("foo")
Run Code Online (Sandbox Code Playgroud)
如果我从命令行运行./main.py,我得到以下输出:
hi from stuff.py
hi from main.py
foo
Run Code Online (Sandbox Code Playgroud)
这正是我所期待的.但是,如果我运行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)
Run Code Online (Sandbox Code Playgroud)
然后是一些与我的问题无关的更详细的统计数据.为什么会这样?我能做些什么让Pylint意识到utils/stuff.py?我正在运行Python 3.5.2,Pylint 1.6.4和OS X 10.11.6.
Jac*_*son 25
你需要一个创造utils/__init__.py.这将使python知道子模块,并允许您运行导入时想要发生的任何代码.如果您不想运行任何内容,则只需包含docstring.