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

使用sudo以80端口启动Django服务器时遇ImportError问题求助

解决sudo启动Django 80端口找不到Django模块的问题
  • 用sudo -E保留当前用户环境变量
    sudo默认会重置环境变量,导致root找不到你虚拟环境里的依赖。加上-E参数就能保留当前用户的环境配置(包括虚拟环境的依赖路径),直接执行:

    sudo -E .venv/bin/python3 manage.py runserver 0.0.0.0:80
    
  • 手动给sudo指定PYTHONPATH
    先找到你虚拟环境的site-packages路径,执行pip show django,输出里的Location字段就是路径。然后把这个路径传给sudo的PYTHONPATH:

    sudo PYTHONPATH=/path/to/your/.venv/lib/pythonX.X/site-packages .venv/bin/python3 manage.py runserver 0.0.0.0:80
    

    把/path/to/your/...换成实际的Location路径,pythonX.X换成你的Python版本(比如3.10)。

  • 给Python二进制文件加低端口绑定权限(更安全)
    不想用sudo运行整个服务器的话,可以给虚拟环境的Python程序添加绑定1024以下端口的权限,执行:

    sudo setcap 'cap_net_bind_service=+ep' .venv/bin/python3
    

    之后不用sudo,直接运行下面的命令就能用80端口启动:

    .venv/bin/python3 manage.py runserver 0.0.0.0:80
    

内容的提问来源于stack exchange,提问作者Joakim.roos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:03:22