2012-02-05 9 views
6

main.py ancak daha sonra menu.py sitesinden domain.py dosyasını atar. Bunu nasıl yapabilirim ?İthalat modülü ben şöyle bir hiyerarşi istiyorum (ve böyle görünmek zorunda) Ben ui.py frome etkinleştirmeniz gerekir</p> <pre><code>main_folder main.py domain_sub_directory __init__.py domain.py ui_sub_direcotory __init__.py menu.py </code></pre> <p>

import ui_sub_directory.ui 

Bu ui in:

import domain_sub_directory.domain 

Ama UI modülü alanı modülünü görmez

Ben ana yapıldığını görmüştük.

Neyi yanlış yapıyorum?

BTW Ayrıca çalıştığım sınıfı da içe aktarmam gerekir mi? ve aşağıdaki ile arasındaki fark nedir:

?

* Ben içe aktarmak istiyorsunuz anlamıyorum olanlar için Düzen *: Bunu almak istediğiniz

folder1 /folder2 /folder3 /module1 

:

folder1 /folder2 /module2 
+0

'import ui_sub_directory.ui()' zaten yanlış sözdizimi ve mantıktır. – Gandaro

+0

Neredeyse bunun bir kopyası: http://stackoverflow.com/questions/8951255/import-script-from-a-parent-directory –

+1

Ayrıca sizden "elmalar ve armutlar arasındaki fark nedir?" benzer bir soru. Tamamen farklılar. İlki yanlış, ikincisi de değil. Lütfen [ithalat hakkında] okuyun (http://docs.python.org/tutorial/modules.html). – Gandaro

cevap

7

Sen ithalat tablolara farkı sordu . Kısmen, nesnenin altına alınacağı ad alanı ve ayrıca içe aktarılan kodun tam miktarını sınırlamanın bir yolu.

Hem os hem de os.path modüllerdir. İlk olarak tüm os modülü ve tüm alt modülleri içe aktarılır. Bu sizin ihtiyaç duyduğunuzdan daha fazla olabilir ve büyük kütüphaneler için gereksiz bir ek yük olabilir. Yine de, yolun yalnızca yol modülünü içe aktarmanın bir yolu olduğu gibi, yine de bu yoldan erişebilirsiniz. Ayrıca, os ad alanı altında kodunuza girmek yerine, artık yalnızca path olarak kök düzeyinde yaşıyor.

: Sonra çeşitli komut gibi, main_folder altında tüm göreli diğer modül başvurabilir

# this will make your package available on your pythonpath 
sys.path.append("/path/to/main_folder") 

:

bu bağlantıyı Import Script from a Parent Directory bilmeniz gereken her şeyi anlatmak yok iken

, burada biraz daha spesifik bilgi olduğunu
from ui_sub_direcotory import menu 

from domain_sub_directory import domain 

import main 

Bunlar paketinizin içindeki geçerli tüm içe aktarmalardır.

+0

Eğer cevap vermezseniz, lütfen en azından bir bağlantı gönderin, düşüncelerimi iletmek için yeterince ingilizce bilmiyorum, bu yüzden onu arayamıyorum. Normal ithalatlar buldum ama "geri" değil. En azından sanırım ikinci bölüm için teşekkür ederim. – Kalec

+0

Bağlantılar, yorumlarda zaten yayınlanmıştır. Ama biraz daha fazla yardım ile güncelledim – jdi

+0

Tamam, çok basit sorunlar için üzgünüm ama bu hatayı alıyorum: "SyntaxError: (unicode error) 'unicodeescape' codec, 13-15 konumunda baytları çözemez: kaçış içinde dizenin sonu "Yolum nasıl görünüyor?" D: \ Bilgi \ Eclipse Çalışma Alanı \ Test \ Test_src \ ui? ya da değil ? Anlamadım – Kalec

İlgili konular