Hatta __sigara paketinde teşebbüs göreli ithalat init__.py
Aşağıdaki dizin yapısı ile PEP 328, takip etmeye çalışıyorum:
pkg/
__init__.py
components/
core.py
__init__.py
tests/
core_test.py
__init__.py
core_test.py
aşağıdaki alma deyimi var
from ..components.core import GameLoopEvents
Ben çalıştırmak, ancak 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
this this bu soruları kabul cevapları bile ama en ÇOK ben buldum çevresinde arama benim için çalışıyorsun. Kaçırdığım bir şey var mı?
CEVAP
@Ignacio cevabı ayrıntılı: python alma mekanizması çalışır geçerli dosyanın __name__
göre. Bir dosya doğrudan çalıştırdığınızda, o zamanki adı yok, ama onun adı yerine "__main__"
vardır. Göreli ithalat çalışmıyor. İgancio de belirtildiği gibi,- m seçeneğini kullanarak çalıştırabilirsiniz. Eğer size paket olması gerekiyordu çalıştırmak gibi bir komut da kullanabilirsiniz __package__
öznitelik söyle o dosyaya ne isim zaten paketi hiyerarşi. Ayrıntılar için http://www.python.org/dev/peps/pep-0366/ bkz.
Nasıl Python ile göreli ithalat yapmak...
göreli ithalat için python ambalaj...
Python 3'te göreli ithalat...
Herkes'göreli ithalat s python aç...
Python göreli milyarıncı kez ithalat...