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

Ubuntu部署Django出现No module named 'rest_framework'错误如何解决

问题根源

你出现这个问题的核心原因是在激活虚拟环境的状态下错误使用sudo执行pip安装命令:sudo会切换到root用户上下文,跳过当前普通用户激活的虚拟环境,把包安装到系统全局的Python路径下,而你运行Django用的是当前用户/虚拟环境里的Python,自然找不到全局安装的包。

从你的报错信息可以看到,Django的加载路径是/home/ubuntu/.local/lib/python3.6/site-packages/,而你用sudo pip3 freeze列出的是root用户全局安装的包,两个路径完全不匹配,所以即使你在全局装了包,运行Django的Python环境也读不到。

解决方案步骤

  1. 首先进入你的项目目录,激活对应虚拟环境,激活成功后终端前缀会显示虚拟环境名称,格式类似(venv) ubuntu@ip-xxx:~$
  2. 完全去掉sudo执行安装命令,两种方式二选一即可:
    • 用requirements.txt批量安装:pip install -r requirements.txt
    • 单独安装指定依赖:pip install djangorestframework django-cors-headers
  3. 安装完成后执行pip freeze(不要加sudo),确认输出列表里包含djangorestframework、django-cors-headers等你在INSTALLED_APPS里注册的依赖
  4. 再运行Django启动命令即可正常加载依赖

额外注意事项

  • 不要混用pip和pip3:激活虚拟环境后,pip命令默认就对应虚拟环境内Python版本的包管理工具,不需要额外加3后缀
  • 如果执行pip命令提示权限不足,说明你的虚拟环境目录权限被之前的sudo命令改到了root名下,执行sudo chown -R ubuntu:ubuntu /path/to/your/venv把虚拟环境目录权限改回当前ubuntu用户所有,再重新执行安装命令即可

内容的提问来源于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 21:42:03