Próbuję śledzić PEP 328 , o następującej strukturze katalogów:
pkg/
__init__.py
components/
core.py
__init__.py
tests/
core_test.py
__init__.py
W core_test.py
Mam następującą instrukcję import
from ..components.core import GameLoopEvents
Jednak po uruchomieniu pojawia się następujący błąd:
tests$ python core_test.py
Traceback (most recent call last):
File "core_test.py", line 3, in <module>
from ..components.core import GameLoopEvents
ValueError: Attempted relative import in non-package
Podczas wyszukiwania znalazłem „ ścieżkę względną nie działa nawet z __init__.py ” i „ Importuj moduł ze ścieżki względnej ”, ale nie pomogły.
Czy czegoś tu brakuje?
no module named myimports.foo
kiedy je uruchomię.
cd
do PyImports
i run python -m unittest tests.test_abs
, na przykład.
unittest
projektów, więc napisałem ten dość wyczerpujący przykładowy projekt, który obejmuje głębokie zagnieżdżanie modułów, import względny i absolutny (tam, gdzie działa i nie działa) oraz odnośniki względne i absolutne z wewnątrz pakiet, a także import klas, pojedynczo, podwójnie i na poziomie pakietu. Pomogło jasne rzeczy aż do mnie!