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

树莓派上Apache部署Django应用出现内部服务器错误,提示找不到django模块

树莓派上Apache部署Django应用出现内部服务器错误,提示找不到django模块

看起来核心问题很明确——Apache的WSGI进程没正确加载你虚拟环境里的Django,所以才会抛出ModuleNotFoundError: No module named 'django'。我来给你一步步排查和解决:

第一步:确认虚拟环境和Django安装状态

先别急着改配置,先确认你的虚拟环境里真的装了Django,路径也没问题:

  1. 激活你的虚拟环境:
source /home/pi/greenhouse/greenhouseenv/bin/activate
  1. 查看已安装的包,确认Django存在:
pip list | grep Django

如果没看到Django,就重新安装:

pip install django

另外,检查虚拟环境的根目录是否正确——你的WSGIDaemonProcess里写的python-home=/home/pi/greenhouse/greenhouseenv,这个路径下应该有bin、lib这些子目录,比如/home/pi/greenhouse/greenhouseenv/bin/python必须存在,不然路径就错了。

第二步:修正Apache配置的权限问题

Apache默认用www-data用户运行,很可能它没有访问你虚拟环境和项目文件的权限,导致无法读取Django模块:

  1. 给虚拟环境目录设置正确的权限:
sudo chown -R www-data:www-data /home/pi/greenhouse/greenhouseenv
sudo chmod -R 755 /home/pi/greenhouse/greenhouseenv
  1. 确保项目文件和wsgi.py也能被www-data读取:
sudo chmod -R 755 /home/pi/greenhouse
sudo chmod 644 /home/pi/greenhouse/greenhouse/wsgi.py

第三步:检查mod_wsgi和Python版本是否匹配

树莓派上可能默认安装的是Python2版本的mod_wsgi,但你的虚拟环境用的是Python3,这就会导致版本不匹配,找不到Python3虚拟环境里的包:

  1. 先检查当前mod_wsgi对应的Python版本:
mod_wsgi-express module-config

看输出里的Python路径,如果是指向Python2的,就卸载旧的mod_wsgi,安装Python3版本的:

sudo apt-get remove libapache2-mod-wsgi
sudo apt-get install libapache2-mod-wsgi-py3
  1. 启用wsgi模块(如果没启用的话):
sudo a2enmod wsgi

第四步:验证Apache配置并重启

确认你的000-default.conf里的WSGIDaemonProcess配置没问题:

WSGIDaemonProcess greenhouse python-path=/home/pi/greenhouse python-home=/home/pi/greenhouse/greenhouseenv
WSGIProcessGroup greenhouse
WSGIScriptAlias / /home/pi/greenhouse/greenhouse/wsgi.py

这里的python-path是你的Django项目根目录(包含manage.py的那个目录),python-home是虚拟环境根目录,路径都没问题的话,重启Apache生效:

sudo systemctl restart apache2

额外的调试技巧

如果还是不行,可以临时修改wsgi.py,手动添加虚拟环境的site-packages路径,强制让Python找到Django:

"""
WSGI config for greenhouse project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/4.1/howto/deployment/wsgi/
"""
import os
import sys
# 替换成你虚拟环境的site-packages路径,比如python3.9/site-packages
sys.path.append('/home/pi/greenhouse/greenhouseenv/lib/python3.9/site-packages')

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'greenhouse.settings')

application = get_wsgi_application()

修改后重启Apache,再看日志是否还有错误。

备注:内容来源于stack exchange,提问作者907VigiL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 14:53:10