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

Django部署后出现ModuleNotFoundError: No module named 'webpush'求助

解决Django部署服务器后ModuleNotFoundError: No module named 'webpush'问题

以下是针对该问题的排查和解决步骤:

  • 确认虚拟环境激活状态与包安装路径

    1. 执行echo $VIRTUAL_ENV,输出路径需与错误日志中/home/……/.virtualenvs/venv一致,确保操作的是项目对应的虚拟环境。
    2. 手动激活虚拟环境:
      source /home/……/.virtualenvs/venv/bin/activate
      
    3. 重新安装包:
      pip install Django-webpush
      
    4. 验证包是否安装成功:
      pip list | grep Django-webpush
      
      或直接查看虚拟环境的site-packages目录:
      ls /home/……/.virtualenvs/venv/lib/python3.10/site-packages/ | grep webpush
      
  • 检查WSGI配置文件的虚拟环境绑定
    打开错误日志中的WSGI文件/var/www/www_……….._pl_wsgi.py,确认是否正确加载了虚拟环境,示例配置如下:

    import sys
    import os
    
    # 指定虚拟环境路径
    venv_path = '/home/……/.virtualenvs/venv'
    activate_script = os.path.join(venv_path, 'bin', 'activate_this.py')
    with open(activate_script) as f:
        exec(f.read(), {'__file__': activate_script})
    
    # 添加项目路径到sys.path
    sys.path.insert(0, '/path/to/your/django/project_root')
    
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project.settings')
    
    from django.core.wsgi import get_wsgi_application
    application = get_wsgi_application()
    

    若缺少虚拟环境激活代码,补充后保存。

  • 验证INSTALLED_APPS配置
    确保项目settings.py中INSTALLED_APPS里添加的是'webpush',而非包名'Django-webpush':

    INSTALLED_APPS = [
        # ...其他应用
        'webpush',
    ]
    
  • 重启服务器进程
    部署环境生效需要重启服务:

    • Apache环境:sudo systemctl restart apache2
    • Nginx+Gunicorn环境:sudo systemctl restart gunicorn

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 21:15:34