6

I have the following folder structure

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

and I'm trying to import a function from methodhelper.py inside method.py
so I tried the following:

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

and I get:

"No module named app.helpers.methodhelper" 

Important to note: helpers/__init__.py already exists

How should this be done ?

4

2 回答 2

8

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

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

于 2013-05-13T21:08:55.587 回答
0

您需要在settings.py文件中添加模块

于 2020-05-02T18:02:29.403 回答