You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

严格遵循Graphene-Django基础教程遇ModuleNotFoundError问题求助

解决ModuleNotFoundError: No module named 'ingredients'问题

1. 确认目录结构合规

ingredients必须是标准Django应用,目录下需包含空的__init__.py文件(标识这是Python可导入模块),示例正确结构:

你的项目名/
├── 你的项目名/
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── ingredients/
│   ├── __init__.py
│   ├── apps.py
│   ├── models.py
│   ├── schema.py
│   └── 其他应用文件
└── manage.py

如果缺少__init__.py,直接创建一个空文件即可。

2. 检查INSTALLED_APPS配置

打开项目根目录的settings.py,确认ingredients和graphene_django已正确添加到INSTALLED_APPS列表:

INSTALLED_APPS = [
    # 系统默认应用
    'django.contrib.admin',
    'django.contrib.auth',
    # ...
    # 添加以下两行
    'ingredients',
    'graphene_django',
]

注意应用名称拼写必须完全正确,不要添加多余路径前缀。

3. 验证Python路径包含项目根目录

Python无法找到模块可能是因为项目根目录不在sys.path中,可在manage.py开头添加代码验证并修复:

import sys
import os
# 打印当前Python路径列表
print(sys.path)
# 确保项目根目录(包含ingredients的文件夹)在列表中,不在则手动添加
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

执行python manage.py runserver查看输出,确认根目录已被纳入路径。

4. 检查导入语句正确性

如果在项目根的schema.py或其他文件中导入ingredients模块,必须使用正确的绝对导入路径:

# 正确写法
from ingredients.schema import Query as IngredientsQuery

避免使用错误的相对导入(如from .ingredients...),除非是在项目内部模块中且路径逻辑清晰。

5. 执行应用迁移验证

运行以下命令,若能正常执行,说明Django已识别ingredients应用:

python manage.py makemigrations ingredients
python manage.py migrate

如果命令报错,说明应用本身存在配置问题,需排查models.py或apps.py的语法错误。

6. 确认虚拟环境一致性

若使用虚拟环境,确保当前终端已激活目标环境,且graphene-django、Django等依赖均安装在该环境内,避免跨环境导致模块找不到。


内容的提问来源于stack exchange,提问作者dras

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 00:18:24