运行Django服务器遇ModuleNotFoundError,求助修正DJANGO_SETTINGS_MODULE
以下是排查和解决这个问题的具体步骤:
检查启动命令参数
启动服务器时可能手动指定了错误的settings模块,比如执行了python manage.py runserver --settings=apolo_client.setting,把命令里的setting改成settings即可。另外打开项目根目录的manage.py文件,查找这行代码:os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'apolo_client.setting'),把第二个参数里的setting修正为settings。检查wsgi.py配置
项目的wsgi.py文件(通常在和settings同目录下)里也会设置这个环境变量,找到类似os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'apolo_client.setting')的代码,同样把末尾的setting改成settings。排查虚拟环境配置
如果用了虚拟环境,打开虚拟环境的Scripts目录(Windows系统),查看activate.bat文件,里面可能有set DJANGO_SETTINGS_MODULE=apolo_client.setting的配置,修改为正确值即可。另外检查虚拟环境下的其他启动脚本,看是否有硬编码的错误变量值。检查IDE运行配置
如果你用PyCharm、VS Code等IDE启动服务器,进入运行配置界面,查看环境变量列表里的DJANGO_SETTINGS_MODULE,如果存在错误值直接修正。临时强制重置(应急方案)
要是暂时找不到根源,可以在manage.py的最顶部添加以下代码强制覆盖变量值:import os os.environ['DJANGO_SETTINGS_MODULE'] = 'apolo_client.settings'不过这只是临时解决,建议还是找到错误设置的根源彻底修复。
内容的提问来源于stack exchange,提问作者Hamed

