Django项目中无法从子目录导入server_tasks文件的求助
Django模块导入问题解决
问题回顾
项目结构:
project ├── app ├── __init__.py ├── views.py ├── ... └── tasks ├── __init__.py └── server_tasks.py
在views.py中尝试导入server_tasks.py时出现错误:
ModuleNotFoundError: No module named 'tasks'
解决方法
方法1:相对导入(同app内推荐使用)
通过相对路径指定当前目录下的tasks模块,修改views.py中的导入语句:
# 导入整个server_tasks模块 from .tasks import server_tasks # 或者直接导入模块内的特定函数/类 from .tasks.server_tasks import 目标函数名/类名
这里的.代表当前文件所在的app目录,Python会正确定位到同级的tasks目录。
方法2:绝对导入(大型项目更清晰)
利用Django自动添加到Python路径的项目根目录,使用完整的app模块路径导入:
# 导入整个server_tasks模块 from app.tasks import server_tasks # 或者导入模块内所有内容 from app.tasks.server_tasks import *
额外检查项
- 确认
tasks目录下的__init__.py文件存在(你的结构里已包含,无需修改),Python需要该文件识别目录为可导入模块。 - 确保
app已在项目settings.py的INSTALLED_APPS中注册,避免后续出现关联问题。
内容的提问来源于stack exchange,提问作者rad2
相关产品推荐
相关产品推荐

