Üst klasörden modülleri içe aktarma
Python 2.5 çalıştırıyorum.
Bu benim klasör ağacım:
ptdraft/
nib.py
simulations/
life/
life.py
(Ayrıca her klasörde __init__.py
var, okunabilirlik için burada atlandı)
nibmodülünü
life` modülünün içinden nasıl içe aktarabilirim? sys.path ile uğraşmadan bunu yapmanın mümkün olduğunu umuyorum.
Not: Çalıştırılan ana modül ptdraft
klasöründedir.
539
3
Göreceli içe aktarımları kullanabilirsiniz (python >= 2.5):
(Python 2.5'teki Yenilikler) PEP 328: Mutlak ve Göreceli İçe Aktarmalar
EDIT: iki paket yukarı çıkmak için başka bir nokta '.' eklendi
Görünüşe göre sorun modülün bir üst dizinde olmasıyla ya da buna benzer bir şeyle ilgili değil.
PYTHONPATH
e
ptdraft` içeren dizini eklemeniz gerekirimport nib
in sizde çalıştığını söylediniz, bu muhtemelen
ptdraft`ın kendisini (üstünü değil) PYTHONPATH'e eklediğiniz anlamına gelir.Modül klasörünüzü PYTHONPATH'e eklemek işe yaramadıysa, Python yorumlayıcısının içe aktarılacak modülleri aradığı programınızdaki sys.path listesini değiştirebilirsiniz, python belgeleri diyor:
gt;spam isimli bir modül içe aktarıldığında, yorumlayıcı ilk olarak bu isimde yerleşik bir modül arar. Bulamazsa, sys.path değişkeni tarafından verilen dizin listesinde spam.py adlı bir dosya arar. sys.path bu konumlardan başlatılır:
Bunu bilerek, programınızda aşağıdakileri yapabilirsiniz: