2017-10-09 3 views
0

grève ce - se révèle qu'il était quelque chose de complètement indépendant (aussi." Suffixes py »)Python "ImportError: Aucun module nommé 'x'

ma structure de fichier est comme si:

src/
    | main.py 
    | filehandler.py 

mon main.py échoue à la ligne:

import filehander.py 

avec l'erreur:

Traceback (most recent call last): 
    File "main.py", line 7, in <module> 
    import filehander 
ImportError: No module named 'filehander' 

Pourquoi python échoue-t-il à faire la simple tâche d'importer un fichier dans le même répertoire si mal?

+0

Vous ne pas importer des fichiers, vous importez des modules. Le système de fichiers est juste un détail d'implémentation. [Vous pensez que c'est l'air que vous respirez, maintenant] (https://www.youtube.com/watch?v=CWaxF8jlnm0)? –

+0

'import filehander.py' est incorrect. vous n'écrivez pas .py dans l'importation. 'import filehander' est la bonne syntaxe. –

Répondre

0

Vous n'avez pas besoin d'écrire l'extension d'un fichier lors de l'importation. Il suffit d'utiliser import filehandler

+0

Ne change pas l'erreur. – Illiander

0

Deux choses:

  1. import filehandler pas import filehandler.py
  2. Vous devez être dans le dossier /src lorsque vous exécutez le programme. Le chemin est toujours WRT le dossier actuel.
+0

Je suis. Quand je lance "ls" je vois les deux fichiers. – Illiander

+0

Dans ce cas, vous ne devriez pas avoir de problème ... Exécutez-vous votre programme python en utilisant 'python main.py'? Ou utilisez-vous Spyder ou quelque chose de similaire? – ssm

0

Vérifiez le working directory de votre main.py. Si vous utilisez un IDE et que vous avez déplacé le fichier d'un répertoire à un autre, la 'configuration' du fichier peut rester la même et il essaie de s'exécuter là où il était initialement.

Et comme les autres mentionnés, utilisez import filehandler, non 'filehandler.py'