2013-06-21 97 views
0

我在cgi環境中使用python,並使用mvc設計模式。
所以我現在有以下層次:python從python包導入類

main.py 
    mvc/       
    __init__.py    
    model/     
      __init__.py 
      session_initiator.py 
    view/ 
      __init__.py 
    controller/ 
      __init__.py 
      interface.py 

在session_initiator.py我已經定義的類session_initiator
我試圖導入內部interface.py
在interface.py下面的代碼是session_initiator類成功:

from .. import model 

,但是當我嘗試添加類似的東西:

from model import session_initiator 

我得到一個錯誤,模型不是一個模塊。

因爲我用我在哪裏不能編輯它的環境,請不要參考的解決方案有關的sys.path

謝謝。

編輯:所有的init文件都是空的。

編輯:我改了行到:

from mvc.model import session_initator 

和這條線的工作! 但現在試圖做的時候:

self.session_init = session_initiator() 

我得到以下錯誤:

TypeError: 'module' object is not callable 
+3

你需要從mvc.model進口session_initiator' – karthikr

+0

做'不是說你應該這樣做,以解決您的問題,但你應該總是能夠從內Python本身編輯'sys.path'動態。 –

回答

0

進口不建立在這樣的現有名稱。

from ..model import session_initiator 

此外,session_initiator現在是一個模塊,而不是一個類。如果你打算從裏面輸入那個模塊,那麼你必須這樣做。

from ..model.session_initiator import session_initiator