迁移Django项目至Docker后出现ModuleNotFoundError: No module named 'bootstrap5'
解决Docker中Django启动提示ModuleNotFoundError: No module named 'bootstrap5'的步骤
1. 重新构建镜像并禁用缓存
Docker的构建缓存可能导致修改后的requirements.txt未生效,执行以下命令强制重新构建:
docker build --no-cache -t my-django-app .
2. 检查依赖安装日志
构建镜像时,观察日志中是否出现Successfully installed django-bootstrap5-23.3的内容。如果没有,说明依赖安装失败,可尝试更换pip源解决网络问题:
修改Dockerfile中的安装命令:
RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
3. 容器内验证依赖与模块导入
启动交互式容器,手动检查依赖是否正常:
# 进入容器终端 docker run --rm -it my-django-app bash # 查看已安装的bootstrap相关包 pip list | grep bootstrap # 测试模块导入 python -c "import bootstrap5; print('模块导入成功')"
如果导入失败,可尝试更换requirements.txt中的版本,比如使用兼容更稳定的版本:
django-bootstrap5==22.2
4. 排查项目目录冲突
确认项目根目录下没有名为bootstrap5的自定义文件夹,否则Python会优先导入本地目录而非安装的第三方包。若存在同名目录,立即重命名。
5. 对齐本地与容器的依赖包名
你本地使用pip install django-bootstrap-v5安装,但requirements.txt中写的是django-bootstrap5——这是PyPI上两个不同的包。执行以下命令查看本地实际安装的包信息:
pip show django-bootstrap-v5
将requirements.txt中的内容替换为输出的Name和Version,例如:
django-bootstrap-v5==1.0.11
同时注意:该包要求在INSTALLED_APPS中添加的是django_bootstrap_v5而非bootstrap5,需同步修改settings.py。
内容的提问来源于stack exchange,提问作者Gaurish Ninnekar
相关产品推荐
相关产品推荐

