2012-09-18 27 views
0

我知道有很多類似的問題和答案,但我真的不能這樣做。 我將views.py,models.pyforms.py分割爲相應文件夾中的多個文件。因此,文件夾結構如下:如何從Django的子目錄中導入包

myapp 
    \__init__.py 
    \admin.py 
    \forms 
    \__init__.py 
    \my_forms.py 
    \views 
    \__init__.py 
    \my_views.py 
    \models 
    \__init__.py 
    \my_models.py 

在相應__init__.py文件我加入:

from my_file import * 

其中my_file對應於my_formsmy_viewsmy_models

現在我試圖導入,比方說,從形式my_views.py

from myapp.forms import MyForm 

其結果是,我得到以下錯誤:

No module named forms 

有人能指出我什麼我做錯了嗎?

+1

它在你的PYTHONPATH中嗎? – YardenST

+0

python myapp在PYTHONPATH中的完整路徑,因爲YardenST建議 – avasal

+0

感謝球員們的回覆。不,我沒有手動添加任何東西給PYTHONPATH。我應該手動添加我的模塊到Python路徑?我只是想用它們作爲普通的python模塊。你能給我一個鏈接,可以閱讀關於Django和Python路徑中的模塊嗎? –

回答

0

我想出了問題。這是我愚蠢的錯誤。事實上,目錄結構是這樣的:

myapp 
|--__init__.py 
|--admin.py 
|--forms 
    |--__init__.py 
    |--myapp.py 
|--views 
    |--__init__.py 
    |--myapp.py 
|--models 
    |--__init__.py 
    |--myapp.py 

這就是我命名錶單,視圖和模型文件名稱相同的應用程序名稱(例如,應用程序名稱是「聯繫人」,以及模型文件是「 contacts.py')。這導致了我的錯誤。

因此,不要將內部文件命名爲與應用程序相同的名稱。儘量避免使用相同的名稱;)

非常感謝所有試圖提供幫助的人。

相關問題