部署Django时遇Gunicorn报错:ModuleNotFoundError,找不到'core'模块
解决Django部署中gunicorn找不到core模块的问题
问题详情
执行部署命令:
gunicorn -c conf/gunicorn_config.py core.wsgi
触发错误:
ModuleNotFoundError: No module named 'core'
目录结构
- home/uletin
- conf
- ...
- gunicorn_config.py
- env
- graduates
- ...
- core
- ...
- settings.py
- wsgi.py
- ...
- manage.py
- static
- conf
当前gunicorn配置(gunicorn_config.py)
command = '/home/uletin/env/bin/gunicorn' pythonpath = 'home/uletin/graduates' bind = '165.22.98.56:8000' workers = 3
解决方案
1. 修正pythonpath的绝对路径
配置中的pythonpath缺少根路径斜杠,导致Gunicorn无法定位到正确的项目目录。修改为完整绝对路径:
pythonpath = '/home/uletin/graduates'
2. 指定工作目录(可选)
在配置文件中添加chdir参数,让Gunicorn启动时自动切换到项目根目录:
chdir = '/home/uletin/graduates'
或者执行命令前手动切换到/home/uletin目录再运行gunicorn。
3. 验证模块可导入性
激活虚拟环境后,进入项目目录测试模块导入是否正常:
source /home/uletin/env/bin/activate cd /home/uletin/graduates python -c "import core"
如果这一步报错,检查:
- 虚拟环境是否安装了所有Django依赖
- 旧版本Django是否需要在
graduates目录下添加空的__init__.py文件
4. 直接在命令行指定pythonpath(应急方案)
如果配置文件修改后仍有问题,可以在启动命令中直接指定路径:
gunicorn -c conf/gunicorn_config.py --pythonpath=/home/uletin/graduates core.wsgi
内容的提问来源于stack exchange,提问作者Uletin
相关产品推荐
相关产品推荐

