Nie używaj .py
rozszerzenia w imporcie.
Robi from 8puzzle import *
?
Tyle ile jest warte, from x import *
nie jest preferowanym wzorcem Pythona, ponieważ upuszcza przestrzeń nazw tego modułu do bieżącego kontekstu.
Ogólnie rzecz biorąc, spróbuj zaimportować wybrane rzeczy z tego modułu. Można zaimportować dowolny globalny z innego modułu.
np. jeśli masz 8puzzle.foo
możesz zrobić `from 8puzzle import
Edytować:
Podczas gdy mój .py
wiadomość jest poprawna, nie wystarczy.
__import__('8puzzle')
Sugestia drugiego autora jest poprawna. Jednak bardzo polecam unikanie tego schematu .
Po pierwsze, jest to zarezerwowana wewnętrzna, prywatna metoda Pythona. Zasadniczo łamiesz podstawowe założenia dotyczące możliwości zaimportowania modułu. Po prostu zmień nazwę pliku na inną, na przykładpuzzle8
, rozwiązuje ten problem.
Spowoduje to cholerną frustrację doświadczonych programistów Pythona, którzy oczekują, że będą wiedzieć, jakie importowane pliki znajdują się na szczycie i oczekują, że kod (spróbuje) być zgodny z PEP8 .