web-dev-qa-db-fra.com

Erreur "Aucun nom dans le module" de Pylint

J'ai un fichier nommé main.py avec le code suivant:

#!/usr/bin/env python3

import utils.stuff

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

Dans le répertoire avec main.py, J'ai un sous-répertoire nommé utils qui a un fichier nommé stuff.py avec le code suivant:

print("hi from stuff.py")

def foo():
    print("foo")

Si je lance ./main.py depuis la ligne de commande, j'obtiens la sortie suivante:

hi from stuff.py
hi from main.py
foo

C'est exactement ce que j'attends. Cependant, si je lance pylint main.py, J'obtiens la sortie suivante:

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)

suivi de statistiques plus détaillées qui ne semblent pas pertinentes pour ma question. Pourquoi cela arrive-t-il? Que puis-je faire pour informer Pylint de utils/stuff.py? J'utilise Python 3.5.2, Pylint 1.6.4 et OS X 10.11.6.

21
Elias Zamaria

Vous avez besoin d'une création utils/__init__.py. Cela rendra python conscient du sous-module et vous permettra également d'exécuter n'importe quel code que vous souhaitez obtenir lors de l'importation. Si vous ne voulez rien exécuter, alors incluez simplement une docstring.

23
Jacob Tomlinson

J'ai eu cette erreur lorsque ma fonction a été nommée start:

from views import start

Cela a fonctionné lorsque j'ai changé le nom de la fonction.

0
user984003