在Clever Cloud部署Django 5.0.3时遇ModuleNotFoundError: No module named 'photos'
Django 5.0.3部署Clever Cloud时'photos'模块找不到的问题根源
以下是几个最可能的问题点:
- 缺少Python包标识文件:
photos目录下没有__init__.py文件。虽然Python 3.3+支持隐式命名空间包,但Django仍依赖这个文件识别应用。本地开发环境可能因IDE或自动配置绕过了这个检查,但服务器环境会严格遵循Python包规则。 - Python路径未正确配置:Clever Cloud的
PYTHONPATH环境变量未包含photos所在的目录。比如项目根目录未被添加到Python路径,导致解释器找不到该模块。可检查启动命令是否添加了export PYTHONPATH=$PYTHONPATH:$BASE_DIR这类配置,或确认settings.py中的BASE_DIR是否正确指向项目根。 - 版本控制遗漏目录:
photos目录被加入了.gitignore,导致推送代码到Clever Cloud时该目录未被上传。本地存在该目录但服务器上没有,自然触发ModuleNotFoundError。 - INSTALLED_APPS配置错误:
settings.py的INSTALLED_APPS中应用名称填写错误。如果photos是嵌套在子目录下的应用,需要填写完整的包路径(比如'myproject.photos'),而非仅'photos';反之如果是根目录下的应用,要确保名称完全匹配。
内容的提问来源于stack exchange,提问作者fransua
相关产品推荐
相关产品推荐

