SORU
18 Temmuz 2012, ÇARŞAMBA


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
18 Temmuz 2012, ÇARŞAMBA


@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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jabari Johnson

    Jabari Johns

    18 Ocak 2008
  • Ryan Billy

    Ryan Billy

    30 EKİM 2006
  • TomSka

    TomSka

    30 Mayıs 2006