You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EC2 Ubuntu环境下Django应用绑定Gunicorn失败问题求助

问题根本原因
  • sudo命令默认会重置当前用户的环境变量,你激活的Python虚拟环境在sudo执行时会失效,因此调用的是系统全局安装的Python3.5版本,而非你升级后的Python3.6。报错中的语法错误是因为你安装的asgiref依赖包版本过高,用到了Python3.5不支持的变量类型注解语法,才会抛出SyntaxError。
  • 你初始化虚拟环境时,/var/www/html/venv目录的所有者不是当前ubuntu用户,因此直接执行pip安装包时会触发权限不足报错,你添加--user参数后,gunicorn被安装到了ubuntu用户的本地目录,而非当前激活的虚拟环境内,因此虚拟环境中找不到gunicorn模块,触发ModuleNotFoundError。
解决步骤
  1. 修复虚拟环境目录权限,执行命令:
    sudo chown -R ubuntu:ubuntu /var/www/html/venv
  2. 激活你的虚拟环境:
    source /var/www/html/venv/bin/activate
  3. 卸载之前安装到用户本地目录的gunicorn,避免冲突:
    pip3 uninstall gunicorn -y
  4. 重新在虚拟环境内安装gunicorn,此时权限已正常无需加--user参数:
    pip install gunicorn
  5. 测试启动,无需加sudo直接执行即可:
    gunicorn --bind 0.0.0.0:8000 logistics.wsgi:application

补充说明:如果你后续需要绑定80、443等需要root权限的特权端口,不要直接加sudo调用gunicorn,需指定虚拟环境内的gunicorn绝对路径,示例命令:
sudo /var/www/html/venv/bin/gunicorn --bind 0.0.0.0:80 logistics.wsgi:application

内容的提问来源于stack exchange,提问作者C-Bizz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 23:36:04