2014-09-18 5 views
0

J'étais coincé avec un code en python. Mais sous une forme simple, il ressemble à ceciImportError: Aucun module nommé b - Python

a.py ressemble à ceci

import b 

def hello(): 
    print "hello" 

print "a.py" 
print hello() 
print b.hi() 

et b.py ressemble à ceci

def hi(): 
    print "hi" 

a.py, je reçois une erreur. Je connais quelques questions qui traitent des dépendances circulaires. Mais ce n'est pas ce cas correct? TIA - Édité

+1

Quelle est l'erreur exacte que vous obtenez? – karthikr

+0

Êtes-vous sûr de ne pas avoir le 'ImportError' lorsque vous essayez d'exécuter' a.py'? (Par opposition à 'b.py'.) – 5gon12eder

+1

Où sont' a.py' et 'b.py'? Dans le même répertoire? – FatalError

Répondre

0

J'ai eu un problème comme celui-ci avant et c'était parce que je n'avais pas de __init__.py dans le même répertoire que le module/paquet que j'essayais d'importer. Vous avez besoin de ce fichier pour importer un paquet même s'il est vide.

+0

Ceci est seulement nécessaire pour * packages * (comme vous le dites) mais pas pour * modules *. Puisque l'OP n'a qu'un seul fichier, c'est un module plutôt qu'un paquet. Et même alors, le fichier devrait être nommé '__init __. Py' (qui est une erreur de démarque). – 5gon12eder

+0

Vous ne devriez vraiment pas transformer votre répertoire source de premier niveau en un paquet. – abarnert

+0

__init__ fonctionne! – user3908081