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

Apache部署Django出现Target WSGI script cannot be loaded错误如何解决

Django+Apache部署ModuleNotFoundError问题排查与解决

错误核心原因是mod_wsgi运行的Python环境未识别到已安装的Django依赖,可按以下步骤排查解决:

排查步骤

  • 确认mod_wsgi与Django安装的Python版本一致:
    mod_wsgi是绑定特定Python版本编译的,系统存在多Python版本时极易出现版本不匹配问题。执行对应命令确认版本:
    • Debian/Ubuntu:dpkg -l | grep libapache2-mod-wsgi
    • CentOS/RHEL:rpm -qa | grep mod_wsgi
      再执行你安装Django时使用的Python命令确认Django安装路径,例如用Python3.6就执行:python3.6 -m pip show django,查看输出的Location字段是否和你配置里的/home/preinstall/.local/lib/python3.6/site-packages一致。
  • 验证Django安装路径权限:
    Apache运行用户(默认一般为www-data、apache)需要有Django安装路径的读取、进入权限,执行namei -l /home/preinstall/.local/lib/python3.6/site-packages/django检查每一级目录的other权限是否包含r和x权限。
  • 检查是否存在全局Python路径覆盖:
    查看Apache主配置文件(apache2.conf/httpd.conf)中是否配置了全局WSGIPythonPath参数,该参数会覆盖虚拟主机内配置的python-path,若存在可删除全局配置,优先使用虚拟主机级别配置。

解决方案

  • 版本不匹配时重装对应版本mod_wsgi:
    例如使用Python3的场景,Debian/Ubuntu可执行apt install libapache2-mod-wsgi-py3,也可直接用对应版本pip安装mod_wsgi后手动配置Apache加载对应模块。
  • 虚拟环境场景修正配置:
    如果你是用Python虚拟环境安装的Django,不要手动写site-packages路径,直接用python-home参数指定虚拟环境根目录即可,配置示例:
    WSGIDaemonProcess preinstall python-home=/home/preinstall/你的虚拟环境目录 python-path=/home/preinstall/hx_preinstaller
    
  • 权限不足时修正目录权限:
    执行以下命令给目录补全权限:
    chmod o+x /home/preinstall /home/preinstall/.local /home/preinstall/.local/lib /home/preinstall/.local/lib/python3.6 /home/preinstall/.local/lib/python3.6/site-packages

所有配置修改完成后重启Apache生效:

  • Debian/Ubuntu:systemctl restart apache2
  • CentOS/RHEL:systemctl restart httpd

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:39:04