Docker部署Django项目遇ModuleNotFoundError: No module named 'pandas'
解决Docker中Django项目找不到pandas的问题
问题核心
你本地虚拟环境安装的pandas仅在本地生效,Docker容器是独立的隔离环境,不会自动继承本地Python包,所以容器内运行Django时找不到pandas。
解决步骤
1. 将pandas添加到项目依赖文件(推荐)
cookiecutter-django通过requirements文件管理镜像构建时的依赖,操作如下:
- 打开项目的
requirements/base.txt,添加一行:pandas==1.5.3 - 重新构建Docker镜像,确保依赖被安装到容器内:
docker compose -f local.yml build - 再次启动容器:
docker compose -f local.yml up
2. 若使用pip-tools管理依赖
如果项目用pip-tools维护依赖:
- 打开
requirements/base.in,添加一行:pandas==1.5.3 - 编译生成新的requirements文件:
pip-compile requirements/base.in - 再执行镜像构建和容器启动命令(同步骤1的后两步)。
3. 临时测试(仅用于调试,不推荐生产环境)
如果需要快速验证,可以直接进入运行中的容器安装pandas,但容器重启后依赖会丢失:
docker exec -it summarizing_local_django pip install pandas==1.5.3
关键提示
所有需要在Docker容器内运行的Python包,都必须通过镜像构建过程安装,本地环境的包不会自动同步到容器中。
内容的提问来源于stack exchange,提问作者Jan Gerritsen
相关产品推荐
相关产品推荐

