web-dev-qa-db-fra.com

Importer une classe depuis un autre fichier

Avant de le marquer en double s'il vous plaît lisez mon problème:

J'essaie d'importer une classe à partir d'un fichier d'un sous-répertoire

> main.py
> --->folder/
> ----->file.py

et dans file.py j’ai une classe impliquée (Klasa) Qu’ai-je essayé:

mise en main.py:

from folder import file
from file import Klasa

Je reçois l'erreur:

de l'importation de fichiers Klasa

ImportError: Aucun module nommé 'fichier'

Quand j'essaye d'utiliser juste:

from folder import file

Je reçois cette erreur:

tmp = Klasa ()

NameError: le nom 'Klasa' n'est pas défini

J'ai mis un __init__.py vide dans le sous-dossier et il ne fonctionne toujours pas. J'ai inséré le __init__.py: from file import Klasa et ne fonctionne toujours pas.

Si main et file sont dans le même dossier, cela fonctionne:

from file import Klasa

mais je veux qu'ils soient dans des fichiers séparés.

Quelqu'un peut-il me dire ce que je fais mal?

62
kemis

Votre problème est que vous n'avez jamais spécifié le bon chemin d'accès au fichier.

Essayez plutôt, à partir de votre script principal:

from folder.file import Klasa

Ou, avec from folder import file:

from folder import file
k = file.Klasa()

Ou encore:

import folder.file as myModule
k = myModule.Klasa()
139
Right leg