Django从另一个包导入另一个文件

时间:2013-05-13 20:40:40

标签: python django

我有以下文件夹结构

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

我正在尝试从method.per中的methodhelper.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已存在

应该怎么做?

2 个答案:

答案 0 :(得分:3)

您的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'))

这使我的应用程序可导入,而无需在模块路径中包含我的项目名称。

答案 1 :(得分:0)

您需要将模块添加到 settings.py 文件