2013-05-13 110 views
3

我有以下文件夾結構
的Django從另一個包導入另一個文件

 
app/ 
app/helpers/ 
app/helpers/methodhelper.py 
app/methods/ 
app/methods/method.py 

,我試圖從methodhelper.py導入內部method.py功能
所以我嘗試了以下內容:

 
import app.helpers.methodhelper 
OR 
from app.helpers.methodhelper import function1 
OR 
import helpers.methodhelper 

,我也得到:

"No module named app.helpers.methodhelper" 

需要注意的:helpers/__init__.py已經存在

應該如何進行?

+0

,當我去到應用程序/方法與控制檯並運行「蟒蛇-i method.py」 – Asaf 2013-05-13 20:41:34

+0

是否'應用程序/ __ __初始化。py'存在我得到這個錯誤? – orokusaki 2013-05-13 20:47:09

+0

怎麼樣'從helpers.methodhelper進口function1',我猜,這個問題與方法'manage.py'定義 – karthikr 2013-05-13 20:47:14

回答

2

Django項目的默認路徑是在項目(其中manage.py文件)的根目錄。您可以在下面的子目錄添加到您的PYTHONPATH(由附加到sys.path中很容易做到),也可以使用完整的模塊路徑導入功能:

from projectname.app.helpers.methodhelper import function1

當我開始一個Django項目,我總是添加

PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))

settings.py。此路徑類似於/home/kyle/django_project_name/。裏面直接是manage.py

從那裏,也在我settings.py,我包括:

sys.path.append(os.path.join(PROJECT_ROOT, 'django_project_name'))

這讓我的應用可導入,而不需要包括模塊路徑我的項目名稱。

+0

是的,'來自app.helpers.methodhelper import function1'應該可以工作,我只是測試了一下。 – DrKaoliN 2013-05-13 21:15:54

+0

看來我的Eclipse控制檯不包括PYTHONPATH到項目中,奇..現在,當我使用KDE的Konsole ..想法有關自動添加路徑到Eclipse控制檯的工作? – Asaf 2013-05-13 21:22:57

+0

@Asaf是Eclipse控制檯只是一個Python的REPL?如果是這樣,你可以導入sys並追加到sys.path – Kyle 2013-05-13 21:27:42