Debian系统中PM2启动Python后端报ModuleNotFoundError的问题求助
问题根源
- 你通过pm2指定的是项目venv中的Python解释器,但这个虚拟环境内并未安装
bjoern模块。 - 使用
sudo python3.8 serve.py能正常运行,是因为sudo调用的是系统全局Python3.8,该环境已预装bjoern。 - 大概率是你激活venv后用
sudo pip安装依赖,导致包被安装到root的全局环境,而非当前用户的虚拟环境中。
解决步骤
- 进入项目目录并激活虚拟环境
cd /var/www/mybackendcode source venv/bin/activate - 在激活的虚拟环境中安装
bjoern(不要加sudo)pip install bjoern - 重启pm2进程
pm2 restart HD-backend - 验证:激活venv后直接运行
python serve.py,确认服务能正常启动,再检查pm2状态即可。
额外检查(可选)
- 确认虚拟环境权限,确保当前用户拥有venv目录的读写权限:
sudo chown -R myuser /var/www/mybackendcode/venv
内容的提问来源于stack exchange,提问作者Liang Tang
相关产品推荐
相关产品推荐

