GeoNode Docker安装后执行manage.py报错:No module named 'geonode'
问题解决指南
1. ModuleNotFoundError: No module named 'geonode' 错误处理
你通过Docker部署的GeoNode,运行依赖的Python环境和代码都在容器内部,本地虚拟环境未与容器内依赖完全同步,导致执行collectstatic时找不到模块。正确操作应在容器内部执行相关命令:
- 进入Django容器(替换为你的实际容器名称,通常为
django4my_geonode):docker exec -it django4my_geonode bash - 激活容器内的虚拟环境:
source /usr/src/my_geonode/venv/bin/activate - 切换到项目源码目录并执行静态文件收集:
cd /usr/src/my_geonode/src python manage.py collectstatic --noinput
若坚持在本地执行,需确保本地虚拟环境安装GeoNode完整依赖:
- 切换到
~/my_geonode目录,执行:
注意:此方法需保证本地依赖版本与容器内完全一致,否则仍可能出问题,优先推荐容器内操作。pip install -r requirements.txt pip install -e .
2. 首次docker compose up -d Django容器不健康问题
这是首次启动时Django服务未完全就绪,健康检查提前触发导致的误判。调整健康检查的启动等待时间即可解决:
- 打开
docker-compose.yml文件,找到django服务的healthcheck配置块,增加start_period的值(例如从30s改为60s):healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health/"] interval: 10s timeout: 5s retries: 5 start_period: 60s - 保存后重新启动容器:
docker compose down docker compose up -d
内容的提问来源于stack exchange,提问作者jonsken
相关产品推荐
相关产品推荐

