启动Django应用遇ModuleNotFoundError: No module named 'encyclopediadjango'求助
解决「ModuleNotFoundError: No module named 'encyclopediadjango'」的步骤
1. 修正INSTALLED_APPS配置
Django找不到模块的核心原因通常是settings.py中注册的应用名称与实际应用目录名不匹配:
- 打开项目根目录下的
settings.py,定位到INSTALLED_APPS列表 - 若你是通过
python manage.py startapp encyclopedia创建的应用,需将列表中的'encyclopediadjango'替换为实际的应用目录名'encyclopedia' - 修正后的示例:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'encyclopedia', # 与实际应用目录名一致 ]
2. 确认应用目录包含__init__.py
Python依赖__init__.py文件识别目录为可导入模块:
- 找到你的应用目录(如
encyclopedia),检查是否存在空的__init__.py文件 - 若缺失,创建一个空的
__init__.py文件放入该目录
3. 检查应用目录位置
确保应用目录直接位于项目根目录(与manage.py同级),而非嵌套在其他子目录中。若应用确实在子目录,需在INSTALLED_APPS中使用完整路径(如'subdir.encyclopedia'),但CS50W课程中通常无需此操作。
4. 验证工作目录
确认运行python3 manage.py runserver时,当前终端所在目录为项目根目录(包含manage.py的目录)。可通过ls命令查看目录下是否存在manage.py和应用目录。
5. 激活虚拟环境(若使用)
若你配置了虚拟环境,需确保已激活:
- Mac/Linux环境下运行:
source venv/bin/activate(假设虚拟环境目录为venv) - 激活后重新执行启动命令
内容的提问来源于stack exchange,提问作者Imarosan
相关产品推荐
相关产品推荐

