运行manage.py runserver时出现ImportError: No module named 'website_dj'错误求助
python manage.py runserver时的ImportError: No module named 'website_dj'错误 嘿,我之前也踩过这个Django导入错误的坑,给你几个实用的排查和解决方法:
检查项目目录结构是否正确
Django项目的标准结构应该是这样的(你的根目录是website_dj):website_dj/ ├── manage.py └── website_dj/ ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py重点确认根目录下是否存在同名的子目录
website_dj,并且这个子目录里有__init__.py(哪怕是空文件也可以,它用来标记这是一个Python包)。如果这个子目录缺失或者名字不对,Python就找不到website_dj模块。验证
manage.py中的配置是否匹配
打开你的manage.py文件,找到开头的这行代码:os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'website_dj.settings')确保引号里的
website_dj.settings和你实际的项目包名一致。比如如果你把项目子目录改名为my_site,这里就要改成my_site.settings,否则Django会找不到对应的配置模块。检查Python的路径是否包含当前项目目录
有时候Python的sys.path里没有包含你的项目根目录,导致无法导入website_dj模块。你可以临时在manage.py的最顶部添加几行代码来排查:import sys import os print("当前Python路径:", sys.path) print("当前工作目录:", os.getcwd())运行
python manage.py runserver后,看输出里有没有你的项目根目录C:\Users\home\Desktop\website_dj。如果没有,可以在manage.py里添加一行把目录加入路径:sys.path.append(os.path.dirname(os.path.abspath(__file__)))不过这只是临时解决方案,最好还是确保项目结构符合Django的标准,这样
manage.py本身会自动处理路径问题。排查虚拟环境问题(如果使用了的话)
如果你用了虚拟环境,先确认是否激活了正确的虚拟环境,并且环境里已经安装了Django和项目依赖:- 运行
pip list查看是否有Django - 如果依赖缺失,运行
pip install -r requirements.txt(如果有requirements文件的话) - 确保没有在错误的虚拟环境下运行命令
- 运行
快速验证导入问题
先脱离Django,直接用Python测试能否导入website_dj模块:
在项目根目录下运行:python -c "import website_dj; print('导入成功')"如果这个命令报错,说明是Python本身的导入问题,和Django无关,重点回到前面的目录结构和路径排查;如果成功,再检查Django的配置。
内容的提问来源于stack exchange,提问作者CPP

