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

Ubuntu下用Apache2和mod-wsgi部署Django应用遇模块缺失错误求助

解决Django部署中ModuleNotFoundError及虚拟环境加载问题

问题分析

报错ModuleNotFoundError: No module named 'bitssatoshiproject'通常由以下原因导致:

  • mod_wsgi版本与虚拟环境Python版本不兼容
  • Apache配置中路径指向错误
  • 文件/目录权限不足,导致Apache无法访问虚拟环境或项目文件

解决方案

1. 验证mod_wsgi与虚拟环境Python版本兼容性

mod_wsgi必须与虚拟环境的Python主版本号一致,否则无法正确加载虚拟环境:

  • 查看当前mod_wsgi关联的Python版本:
mod_wsgi-express module-config
  • 查看虚拟环境的Python版本:
/home/ubuntu/bitsvenv/bin/python --version
  • 若版本不一致,卸载现有mod_wsgi后用虚拟环境的pip重新安装:
sudo apt remove libapache2-mod-wsgi-py3  # 若之前通过apt安装
source /home/ubuntu/bitsvenv/bin/activate
pip install mod_wsgi
# 复制mod_wsgi-express module-config输出的LoadModule和WSGIPythonHome配置
# 将配置添加到Apache的mods-available/wsgi.conf中,再重启Apache
sudo systemctl restart apache2

2. 修正Apache虚拟主机配置

调整路径配置并完善目录权限规则:

<VirtualHost *:80>
        ServerAdmin ubuntu@172-31-11-19
        ServerName 172-31-11-19
        ServerAlias 172-31-11-19.com    

        ErrorLog /home/ubuntu/site/logs/error.log
        CustomLog /home/ubuntu/site/logs/access.log combine
        
        # 允许Apache访问项目根目录
        <Directory /home/ubuntu/BitsSatoshi>
                Require all granted
        </Directory>
        <Directory /home/ubuntu/BitsSatoshi/bitssatoshiproject>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>
        
        # 明确指定虚拟环境和项目根路径
        WSGIDaemonProcess bits python-home=/home/ubuntu/bitsvenv python-path=/home/ubuntu/BitsSatoshi
        WSGIProcessGroup bits
        WSGIScriptAlias / /home/ubuntu/BitsSatoshi/bitssatoshiproject/wsgi.py

</VirtualHost>

3. 修复文件/目录权限

确保Apache运行用户(www-data)能读取虚拟环境和项目文件:

# 修改目录所属用户组
sudo chown -R ubuntu:www-data /home/ubuntu/BitsSatoshi
sudo chown -R ubuntu:www-data /home/ubuntu/bitsvenv
# 设置合理的读写权限
sudo chmod -R 755 /home/ubuntu/BitsSatoshi
sudo chmod -R 755 /home/ubuntu/bitsvenv

4. 验证虚拟环境依赖

确认虚拟环境中已安装Django及项目所需依赖:

source /home/ubuntu/bitsvenv/bin/activate
pip install django  # 若未安装Django
pip install -r /home/ubuntu/BitsSatoshi/requirements.txt  # 若存在依赖清单文件
deactivate

5. 重启Apache服务

应用所有配置更改:

sudo systemctl restart apache2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:30:57