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

部署Django应用遇ImportError:找不到django.core.wsgi模块

Hey,这个ImportError: no module named django.core.wsgi错误我碰过好多次了,核心原因就是Apache的mod_wsgi进程找不到你安装在用户目录下的Django包。给你几个一步步解决的办法,按顺序试就行:

1. 给mod_wsgi指定Django所在的Python路径

你是用pip install --user django把Django装在了/home/zahlen/.local/lib/site-packages里,但Apache默认用系统全局的Python环境,根本看不到这个用户目录下的包。所以得在VirtualHost配置里明确告诉它路径:

  • 打开你的//apache2/sites-available/000-default.conf,在VirtualHost块里添加:
    WSGIPythonPath /home/zahlen/.local/lib/pythonX.X/site-packages:/home/zahlen
    
    把pythonX.X换成你实际用的Python版本(比如3.9,可以用python --version查),后面的/home/zahlen是你的项目根目录,也要加上。
  • 保存后重启Apache:sudo systemctl restart apache2

2. 确认mod_wsgi和Python版本匹配

这是很多人忽略的坑:如果你的mod_wsgi是编译给Python2用的,但你用Python3装了Django,肯定找不到模块。

  • 运行mod_wsgi-express module-config,看输出里的Python版本,和你装Django的Python版本对比(比如python --version的结果)。
  • 如果版本不匹配,重新安装对应版本的mod_wsgi:用你目标Python的pip执行pip install mod_wsgi,然后按照文档把新的mod_wsgi模块加载到Apache里。

3. 调试Python路径是否生效

要是前面两步还没解决,可以在项目的wsgi.py开头加几行调试代码,看看mod_wsgi实际能访问的Python路径:

import sys
# 把路径打印到Apache错误日志
print('Current sys.path:', sys.path)
import django.core.wsgi

然后重启Apache,查看错误日志(一般在/var/log/apache2/error.log),如果里面看不到/home/zahlen/.local/lib/site-packages,说明第一步的WSGIPythonPath配置没生效,检查有没有写错路径或者配置没加载。

4. 确保Apache能访问你的文件

Apache默认用www-data用户运行,要是它没权限读你的项目目录和Django包,也会出现模块找不到的错误:

  • 给你的用户目录加可执行权限(让Apache能进入):chmod o+x /home/zahlen
  • 给Django所在的site-packages目录加可读权限:chmod -R o+r /home/zahlen/.local/lib/site-packages/django

一般前两步就能解决问题,要是还不行,再看日志排查权限或者路径的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:01:28