Ошибка" нет имени в модуле " из 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.
1 ответов
вам нужно создать utils/__init__.py
. Это позволит python узнать о подмодуле, а также позволяет запускать любой код, который вы хотите выполнить при импорте. Если вы не хотите ничего запускать, просто включите docstring.