Python projemi yapılandırırken bazı sorunlarım var. Şu anda aynı klasördeki bir grup dosya. Ben dış dizinleri modülleri ithal etmek,Testler ve python paketi yapısı
proj/
__init__.py
foo.py
...
bar/
__init__.py
foobar.py
...
tests/
foo_test.py
foobar_test.py
...
Sorun iç dizinleri, mümkün değildir olduğum gibi yapılandırmaya çalışmışlardır. Bu özellikle testlerle can sıkıcıdır.
Göreli ithalatlar ve PEP 366 ana modülünden gelen göreli aktarım hakkında PEP 328 okudum. Ancak her iki yöntem de temel paketin PYTHONPATH'ımda olmasını gerektirir. Nitekim aşağıdaki hatayı elde
Bu yüzden test dosyalarıValueError: Attempted relative import in non-package.
import os, sys
sys.path.append(os.path.join(os.getcwd(), os.path.pardir))
Hala aynı hatayı alıyorum üstünde aşağıdaki Demirbaş kodu eklendi. Ne testler ile tamamlandı,
- yapısına bir paket için doğru yoldur ve
- ithalatı izin yoluna taban dizini eklemek? yorumunda Talebiniz doğrultusunda
DÜZENLEME, ben mümkün olduğunca tam proj.NAME
paket öneki kullanılarak modülleri aktarmak ister
import os, sys
sys.path.append(os.path.join(os.getcwd(), os.path.pardir))
from ..foo import Foo
Başarısız bir örnek içe aktarma gösterebilir misiniz? –
Ayrıca, lütfen "PYTHONPATH" –
'echo $ PYTHONPATH 'değerinizi de şimdi boş bırakın. – Andrea