执行python manage.py runserver时报错:No module named project name.settings
解决「No module named [项目名].settings」启动报错问题
检查
manage.py的配置
打开项目根目录下的manage.py,找到这行代码:os.environ.setdefault('DJANGO_SETTINGS_MODULE', '项目名.settings')确保引号里的
项目名和你实际的项目目录名称完全一致,注意Linux/macOS系统对大小写敏感,哪怕差一个字母都会报错。如果你的settings文件不在默认的项目子目录里,比如放在config/settings.py,要改成config.settings这种点分隔的模块路径,同时要保证config目录下有__init__.py文件(空文件即可,用于让Python识别该目录为可导入模块)。确认Python路径与项目结构
执行命令查看当前Python的模块搜索路径:python -c "import sys; print(sys.path)"检查你的项目根目录是否在输出的路径列表中。如果不在,有两种解决方式:
- 切换到项目根目录后再执行
runserver命令; - 设置
PYTHONPATH环境变量(Windows用set PYTHONPATH=你的项目根目录路径,Linux/macOS用export PYTHONPATH=你的项目根目录路径)。
同时确保项目结构符合Django的基本规范,大致如下:
项目根目录/ ├── manage.py ├── 项目名/ │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py- 切换到项目根目录后再执行
验证虚拟环境(如果使用)
如果你用了虚拟环境,先确认是否激活了正确的环境——不同虚拟环境的Python依赖和路径可能独立,激活错误环境会导致找不到模块。如果是刚创建的虚拟环境,建议重新安装Django:pip install django。直接指定settings路径启动
可以在启动命令里显式指定settings文件的模块路径,绕开配置问题:python manage.py runserver --settings=项目名.settings如果settings在子目录,比如
config/settings.py,就改成:python manage.py runserver --settings=config.settings
内容的提问来源于stack exchange,提问作者fortune
相关产品推荐
相关产品推荐

