Je suis un débutant avec Python. Avant de commencer, voici la structure de mes dossiers Python
-project
----src
------model
--------order.py
------hello-world.py
Sous src
, j'ai un dossier nommé model
qui contient un fichier Python appelé order.py
dont le contenu suit:
class SellOrder(object):
def __init__(self,genericName,brandName):
self.genericName = genericName
self.brandName = brandName
Suivant mon hello-world.py
se trouve dans le dossier src
, un niveau supérieur au order.py
:
import model.order.SellOrder
order = SellOrder("Test","Test")
print order.brandName
Chaque fois que je lance python hello-world.py
, l'erreur est générée
Traceback (most recent call last):
File "hello-world.py", line 1, in <module>
import model.order.SellOrder
ImportError: No module named model.order.SellOrder
Y a-t-il quelque chose qui m'a manqué?
Tous les modules en Python doivent avoir une certaine structure de répertoires. Vous pouvez trouver les détails ici.
Créez un fichier vide appelé __init__.py
dans le répertoire model
, de sorte que la structure de votre répertoire ressemble à ceci:
.
└── project
└── src
├── hello-world.py
└── model
├── __init__.py
└── order.py
Également dans votre fichier hello-world.py
, modifiez l'instruction d'importation comme suit:
from model.order import SellOrder
Cela devrait résoudre le problème :)
P.S .: Si vous placez votre répertoire model
dans un autre emplacement (pas dans la même branche de répertoire), vous devrez modifier le chemin python en utilisant sys.path
.
vous avez besoin d'un fichier nommé __init__.py
(deux caractères de soulignement de chaque côté) dans chaque dossier de la hiérarchie, donc un dans src/
et un dans model/
. C’est ce que python recherche pour savoir qu’il doit accéder à un dossier particulier. Les fichiers sont censés contenir des instructions d'initialisation, mais même si vous les créez vides, cela les résout.
Vous pouvez vérifier si un module est installé pour python en lançant:
désinstaller pip moduleName
S'il est installé, il vous demandera si vous souhaitez le supprimer ou non. Mon problème était qu'il était installé pour python, mais pas pour python3. Pour vérifier si un module est installé pour python3, exécutez:
python3 -m désinstaller pip moduleName
Après cela, si vous constatez qu’un module n’est pas installé pour une ou les deux versions, utilisez ces deux commandes pour installer le module.