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

2024-06-06 07:06:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下文件夹结构

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已经存在

应该怎么做?


Tags: or函数nofrompyimport文件夹app
1条回答
网友
1楼 · 发布于 2024-06-06 07:06:45

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

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

相关问题 更多 >