2016-04-02 14 views
3

içe aktarılabilir: /app/extend/module.py denI (etkilenen sadece gösteriliyor) bu yapıyla bir projesi var modül piton ImportError

main.py # starting script 
/app 
    |__init__.py 
    |/exceptions 
    | __init__.py # content: from .ex400 import * 
    | base.py 
    | ex400.py # content: some classes extending classes from base.py 
    |/extend 
    | __init__.py # empty 
    | module.py 

, ben /app/exceptions/ex400.py sınıfları içe çalışıyor. Ve asıl I module.py

module.py

# I added this to check the path, output is below 
import sys 
print 'Working directory =>', sys.path 

from app.exceptions.ex400 import SomeClass, MoreClass 

# ... some code here ofcourse 

ithal Ve çalıştırırken, ben bir ImportError olsun.

Working directory => ['/prj/myproject', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages'] 

... 
File "/prj/myproject/app/extend/module.py", line 5, in <module> 
    from app.exceptions.ex400 import SomeClass, MoreClass 
ImportError: No module named exceptions.ex400 

Burada bir şey mi eksik?

cevap

2

Evet, bir şeyleri kaçırıyorsunuz. Onun sadece bir şey küçük ama Python ile ithalatı bir ** her zaman bir acıdır. Örneğin, sizde app -folder'da bir __init__.py bulunmuyor. Sorununuzu çözmeli. Ve ad alanlarının üzerine karışmamanın yolu gibi. 'u istisnalarınızda istisnalar boş bırakabilirim.

Alkış

+0

üzgünüm !, gerçekten benim soru, ama hehe üzgünüm !, garip hasta düzenleme – rrw

+1

, senin yapısını yeniden bir benim makinede çalıştığını olduğunu cevapsız ... Herhangi yazım hatası olabilir? (Aptalca öneri ama biliyorsun) Ayrıca, _app_folder'da '__init __. Py' içeriğiniz nedir? Ve main.py içeriği? –

+0

Bu garip! Ben bu tür için bizim gibi geçirdim ** .. Ben yazım hatası olduğunu düşünmüyorum, çünkü göreceli ithalatı kullanıyorum çünkü '..exceptions.ex400 ithalat sınıfından' .. – rrw

İlgili konular