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.
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.
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.