Aşağıdaki dizin yapısı ile PEP 328'i takip etmeye çalışıyorum :
pkg/
__init__.py
components/
core.py
__init__.py
tests/
core_test.py
__init__.py
İçinde core_test.py
aşağıdaki ithalat beyanı var
from ..components.core import GameLoopEvents
Ancak, çalıştırdığımda, aşağıdaki hatayı alıyorum:
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
Etrafta arama yaparken " göreli yol __init__.py ile bile çalışmıyor " ve " Bir modülü göreceli yoldan içe aktar " buldum ama yardımcı olmadı.
Burada özlediğim bir şey var mı?
no module named myimports.foo
Onları çalıştırdığımda almaya devam et .
cd
içine girmek PyImports
ve koşmak python -m unittest tests.test_abs
.
unittest
ben yazdım bu yüzden, projeler oldukça kapsamlı örnek proje göreli modülleri ve mutlak ithalatın kapakları derin yuvalama (burada iş yapması ve yapmaması) a içinden ve göreli ve mutlak referans paketin yanı sıra sınıfların tek, çift ve paket düzeyinde içe aktarılması. Net şeyler yardımcı oldu sağ benim için!