Django部署后出现ModuleNotFoundError: No module named 'webpush'求助
解决Django部署服务器后
ModuleNotFoundError: No module named 'webpush'问题 以下是针对该问题的排查和解决步骤:
确认虚拟环境激活状态与包安装路径
- 执行
echo $VIRTUAL_ENV,输出路径需与错误日志中/home/……/.virtualenvs/venv一致,确保操作的是项目对应的虚拟环境。 - 手动激活虚拟环境:
source /home/……/.virtualenvs/venv/bin/activate - 重新安装包:
pip install Django-webpush - 验证包是否安装成功:
或直接查看虚拟环境的site-packages目录:pip list | grep Django-webpushls /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
- Apache环境:
内容的提问来源于stack exchange,提问作者Vlad
相关产品推荐
相关产品推荐

