Klasse importeren uit een ander bestand

Voordat u het als duplicaat markeertlees alstublieft mijn probleem:

Ik probeer een klasse te importeren uit een bestand uit een submap

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

en in file.pyheb ik een klasse geïmplementeerd ( Klasa)
Wat heb ik geprobeerd:

main.py invoeren:

from folder import file
from file import Klasa

Ik krijg de foutmelding:

van Klasa importeren

ImportError: Geen module met de naam ‘bestand’

Als ik alleen probeer te gebruiken:

from folder import file

Ik krijg deze foutmelding:

tmp = Klasa()

NameError: naam ‘Klasa’ is niet gedefinieerd

Ik heb een lege __init__.pyin de submap geplaatst en het werkt nog steeds niet, en ik heb in de __init__.py: from file import Klasaen werkt nog steeds niet.

Als hoofd en bestand zich in dezelfde map bevinden, werkt dit:

from file import Klasa

maar ik wil dat ze in aparte bestanden staan.

Kan iemand me vertellen wat ik verkeerd doe?


Antwoord 1, autoriteit 100%

Uw probleem is eigenlijk dat u nooit het juiste pad naar het bestand heeft opgegeven.

Probeer in plaats daarvan vanuit je hoofdscript:

from folder.file import Klasa

Of, met from folder import file:

from folder import file
k = file.Klasa()

of opnieuw:

import folder.file as myModule
k = myModule.Klasa()

Other episodes