修改Django项目配置文件名后出现ModuleNotFoundError求助
解决Django修改配置文件名后ModuleNotFoundError问题(postgresTest模块)
检查环境变量中的配置引用
- 本地执行
echo $DJANGO_SETTINGS_MODULE(Linux/macOS)或echo %DJANGO_SETTINGS_MODULE%(Windows),确认是否仍指向旧的postgresTest.settings;Heroku端执行heroku config:get DJANGO_SETTINGS_MODULE排查。 - 若发现旧值,本地修改
.env文件对应项,Heroku端执行heroku config:set DJANGO_SETTINGS_MODULE=新配置文件名.settings更新。
- 本地执行
检查manage.py硬编码
- 打开项目根目录的
manage.py,查找是否存在os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'postgresTest.settings')这类代码,将postgresTest替换为新的配置文件名。
- 打开项目根目录的
复查wsgi.py/asgi.py配置
- 再次确认wsgi.py和asgi.py文件中,是否有硬编码的
postgresTest.settings引用,替换为新文件名对应的配置路径。
- 再次确认wsgi.py和asgi.py文件中,是否有硬编码的
清理缓存与残留文件
- 本地删除所有
__pycache__文件夹:执行find . -name "__pycache__" -type d -exec rm -rf {} +;同时删除项目根目录下的.pyc文件(若有)。 - Heroku端可通过空提交触发重新部署,强制清理缓存:
git commit --allow-empty -m "Clear deployment cache" && git push heroku main。
- 本地删除所有
检查Procfile启动命令
- 若使用Heroku的Procfile,确认其中的web服务启动命令(如
gunicorn postgresTest.wsgi)是否仍引用旧模块名,替换为新配置文件名的wsgi路径。
- 若使用Heroku的Procfile,确认其中的web服务启动命令(如
排查项目内其他文件的隐性引用
- 检查自定义管理命令、信号处理脚本、第三方依赖配置等文件,是否存在
import postgresTest这类隐性引用,逐一替换为新的模块名。
- 检查自定义管理命令、信号处理脚本、第三方依赖配置等文件,是否存在
内容的提问来源于stack exchange,提问作者pgb314
相关产品推荐
相关产品推荐

