Obecnie próbuje pracować w Pythonie3 i używa bezwzględnych importów do importowania jednego modułu do drugiego, ale pojawia się błąd ModuleNotFoundError: No module named '__main__.moduleB'; '__main__' is not a package
. Rozważmy taką strukturę projektu:ModuleNotFoundError: Brak modułu o nazwie "__main __. Xxxx"; '__main__' nie jest pakietem
proj
__init__.py3 (empty)
moduleA.py3
moduleB.py3
moduleA.py3
from .moduleB import ModuleB
ModuleB.hello()
moduleB.py3
class ModuleB:
def hello():
print("hello world")
Następnie uruchomiony python3 moduleA.py3
daje błąd. Co należy tutaj zmienić?
Dziękujemy!
Prowadzący "." działa tylko tak, jak chcesz, gdy plik, w którym się znajduje, znajduje się w pakiecie. – anonymoose
@anonymoose to "proj", a nie pakiet? ponieważ ma on __init __. py3? – mpseligson
Nie można użyć wiodącego znaku "." w importach i działa tak, jak chcesz, gdy uruchamiasz plik bezpośrednio w Pythonie. Musisz zaimportować plik. Jeśli umieściłeś inny plik poza 'proj', który miał w sobie' import moduleA', wydaje mi się, że zobaczysz wynik, którego się spodziewasz. – anonymoose