繁体   English   中英

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

[英]Django importing another file from another package

我有以下文件夹结构

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

这应该怎么做?

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM