Django电商网站添加搜索功能时执行startapp遇ModuleNotFoundError
Django执行startapp后出现ModuleNotFoundError: No module named 'search'的解决方法
排查步骤及解决方案
1. 确认命令执行路径是否正确
必须在manage.py所在的根目录执行startapp命令:
- 你的manage.py路径为
C:\Users\ASUS\OneDrive\Desktop\Django_Prac\Hello\manage.py,先在PowerShell切换到该目录:cd C:\Users\ASUS\OneDrive\Desktop\Django_Prac\Hello - 重新执行创建app的命令:
python manage.py startapp search
2. 检查是否存在手动创建的不规范search目录
如果之前手动创建过search文件夹,但缺少Django app必需的文件(如__init__.py、apps.py、models.py等),会导致Django无法识别:
- 删除手动创建的
search文件夹 - 回到正确路径下重新执行
python manage.py startapp search,让Django自动生成标准的app结构
3. 检查INSTALLED_APPS是否提前添加了search
如果还未成功创建search app,就先在settings.py的INSTALLED_APPS里添加了'search',执行任何manage命令都会触发错误:
- 打开项目根目录下的
settings.py,找到INSTALLED_APPS列表,暂时删除'search'这一行 - 成功创建app后,再将其添加回去(推荐规范写法:
'search.apps.SearchConfig')
4. 验证Python路径是否包含项目根目录
如果项目根目录不在Python的搜索路径里,Django也找不到新创建的app:
- 在manage.py所在目录执行以下命令:
python -c "import sys; print(sys.path)" - 检查输出是否包含项目根目录(即
C:\Users\ASUS\OneDrive\Desktop\Django_Prac\Hello) - 如果没有,重新激活你的虚拟环境(若使用),确保虚拟环境与项目目录正确关联
内容的提问来源于stack exchange,提问作者Mahdin Ohi
相关产品推荐
相关产品推荐

