SORU
16 EYLÜL 2008, Salı


Nasıl Python ile göreli ithalat yapmak?

Bu dizin yapısını düşünün:

app/
   __init__.py
   sub1/
      __init__.py
      mod1.py
   sub2/
      __init__.py
      mod2.py

mod1, kodlama yapıyorum ve mod2 yerden bir şey almak istiyorum. Nasıl yapmalıyım?

Ama alacağım from ..sub2 import mod2 denedim bir "non-paket göreli ithalat Teşebbüs".

Etrafta araştırdım ama "sys.path manipülasyon" kesmek. sadece buldum Orada temiz bir yol değil mi?


Edit: __init__.pyhepsi benim'şu anda boş

Edit2: sub2 alt paketleri arasında paylaşılan sınıfları (sub1, subX, vb.) içerir. çünkü bunu yapmak için çalışıyorum

Edit3: arıyorum davranışları PEP 366 (teşekkürler, John B) açıklanan aynıdır

CEVAP
16 EYLÜL 2008, Salı


Herkes yapmak yerine sadece soruya cevap ver ne söylemek istiyor gibi görünüyor.

Sorun '____ ana' tercüman için bir argüman olarak mod1.py geçirerek. modülü çalıştırdığınız.

PEP 328:

Göreli ithalat ____ paket hiyerarşisinde bu modülün konumunu belirlemek için öznitelik adı bir modül kullanın. Eğer modülün adı içermiyor herhangi bir paket bilgileri (örneğin seti '__main__') göreli ithalat çözülmüş gibi modül bir üst düzey modülü bakılmaksızın modülü aslında yer alan dosya sistemi.

Python başvuru modüller ana modül göreli yeteneği ekliyorlar 2.6,. PEP 366 değişimi açıklar.

GüncellemeNick Coghlan göre, önerilen alternatif paket-m anahtarı kullanarak içeri modülünü çalıştırmak için.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ElChakotay Andrich

    ElChakotay A

    10 EKİM 2013
  • Le Cargo !

    Le Cargo !

    24 HAZİRAN 2007
  • PlugResearch

    PlugResearch

    22 Mart 2006