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

Ubuntu虚拟机运行Django应用时ImportError问题求助

解决python manage.py runserver时的Django导入错误

以下是针对Ubuntu虚拟机场景的进阶排查和解决方案,覆盖常规方法无效后的可能问题:

  • 确认Python版本与虚拟环境完全匹配
    激活虚拟环境后,分别执行:

    python --version
    pip --version
    

    确保两者显示的Python版本一致(比如都是3.8.x),且pip的路径指向venv/bin/pip。如果执行python时调用的是系统默认版本(比如Python2.7),直接改用虚拟环境的Python绝对路径执行命令:

    ./venv/bin/python manage.py runserver
    
  • 验证虚拟环境激活状态
    激活venv后执行:

    echo $VIRTUAL_ENV
    

    若输出为空,说明激活未生效,根据终端类型重新执行激活命令:

    • Bash/Zsh:source venv/bin/activate
    • Fish:source venv/bin/activate.fish
  • 强制重装Django到虚拟环境
    可能存在安装损坏或缓存问题,激活venv后执行:

    pip uninstall -y django
    pip cache purge
    pip install django==<目标版本号>  # 例如 django==3.2.20
    
  • 检查PYTHONPATH的实际生效情况
    激活venv后执行:

    echo $PYTHONPATH
    

    确认输出包含虚拟环境site-packages的绝对路径(比如/home/yourname/yourproject/venv/lib/python3.8/site-packages)。若未包含,临时设置后再启动服务:

    export PYTHONPATH="/home/yourname/yourproject/venv/lib/python3.8/site-packages:$PYTHONPATH"
    python manage.py runserver
    
  • 修复虚拟环境目录权限
    Ubuntu虚拟机中可能因权限不足导致无法读取venv内的文件,执行:

    sudo chown -R $USER:$USER ./venv
    

    递归将venv目录的所有者改为当前用户,再尝试启动服务。

  • 排查pip/命令路径指向
    激活venv后执行:

    which python
    which pip
    

    确保两个命令的输出都在venv/bin目录下,若指向全局路径,说明虚拟环境未正确隔离,可删除现有venv重新创建:

    rm -rf venv
    python3.8 -m venv venv
    source venv/bin/activate
    pip install django
    

内容的提问来源于stack exchange,提问作者Palinuro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 18:50:00