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

Django uWSGI部署报ModuleNotFoundError: No module named 'project_name'如何解决

报错原因
  • 权限问题:项目存放在/root目录下,该目录默认仅root用户拥有访问权限,uWSGI进程默认以www-data用户运行,无权限读取项目文件,导致无法识别project_name模块。
  • 缺少Python搜索路径配置:uWSGI默认不会自动将项目根目录加入Python的模块搜索路径,即使权限正常也可能无法找到项目根目录下的project_name包。
  • 若你使用了虚拟环境,未在uWSGI配置中指定虚拟环境路径,会导致uWSGI使用系统Python环境,也可能出现模块找不到的问题。
修复步骤
  1. 迁移项目到合理的服务目录(强烈推荐,避免root目录安全风险)
    执行以下命令移动项目并配置权限:
# 移动项目到/var/www目录下
mv /root/project_name /var/www/
# 给uWSGI运行用户分配项目目录所有权
chown -R www-data:www-data /var/www/project_name
# 配置目录权限确保可正常读写
chmod -R 755 /var/www/project_name
  1. 修改uWSGI配置文件/etc/uwsgi/apps-enabled/django.ini,调整路径并补充缺失配置:
[uwsgi]
chdir = /var/www/project_name
# 新增:将项目根目录加入Python模块搜索路径
pythonpath = /var/www/project_name
env = DJANGO_SETTINGS_MODULE=project_name.settings.production
wsgi-file = project_name/wsgi.py
workers = 1
plugins = python3
# 新增:指定uWSGI进程运行的用户和组,避免权限问题
uid = www-data
gid = www-data
# 如果使用了虚拟环境,新增以下配置,替换为你的虚拟环境实际路径
# virtualenv = /path/to/your/virtualenv
  1. 重启uWSGI服务验证修复:
service uwsgi restart

重启后查看/var/log/uwsgi/app/django.log日志,确认无模块缺失报错即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:42:01