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

使用mod_wsgi部署Django时遇ModuleNotFoundError:找不到django模块

解决mod_wsgi部署Django时的ModuleNotFoundError问题

出现ModuleNotFoundError: No module named 'django'通常是虚拟环境未被正确识别、权限不足或依赖未安装导致的,以下是具体排查和解决步骤:

  • 确认虚拟环境中已安装Django
    登录服务器后,进入虚拟环境检查Django是否存在:

    source /home/djangoproject/venv/bin/activate
    pip list | grep Django
    

    若没有任何输出,说明未安装Django,执行pip install django(如需指定版本,加上==x.x.x)。

  • 修复Apache进程的访问权限
    Apache默认以www-data用户运行,需确保该用户能读取项目和虚拟环境目录:

    sudo chown -R www-data:www-data /home/djangoproject
    sudo chmod -R 755 /home/djangoproject
    
  • 验证mod_wsgi与虚拟环境Python版本兼容性
    mod_wsgi与编译时绑定的Python版本强关联,若虚拟环境Python版本和mod_wsgi绑定版本不一致,会导致无法加载虚拟环境内的包:

    1. 查看mod_wsgi对应的Python版本:
      mod_wsgi-express module-config
      
    2. 查看虚拟环境的Python版本:
      /home/djangoproject/venv/bin/python --version
      

    若版本不一致,需重新编译mod_wsgi适配虚拟环境的Python版本,或更换虚拟环境的Python版本。

  • 手动指定虚拟环境路径(可选)
    若以上步骤无效,可在项目的wsgi.py开头添加虚拟环境site-packages路径,强制Python加载该目录下的依赖:

    import sys
    import os
    
    # 替换X.X为你的虚拟环境Python版本号(比如3.8)
    venv_site_packages = '/home/djangoproject/venv/lib/pythonX.X/site-packages'
    sys.path.insert(0, venv_site_packages)
    sys.path.insert(0, '/home/djangoproject')
    
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djangoproject.settings')
    
    from django.core.wsgi import get_wsgi_application
    application = get_wsgi_application()
    

完成以上操作后,重启Apache服务(sudo systemctl restart apache2),再访问站点测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 11:22:54