树莓派运行继电器控制器报错:No module named 'flask_bootstrap' 求解
问题分析与解决步骤
为什么环境配置会出错?
- 虚拟环境建在
/usr目录是核心问题:这是系统级目录,普通用户没有完整读写权限,你安装依赖时要么装不进去,要么会被强制装到系统Python环境里,导致虚拟环境里根本没有flask_bootstrap这类依赖包。 - 另外大概率你启动服务器时没正确激活虚拟环境,导致用的是系统默认Python,自然找不到虚拟环境里的包。
具体解决步骤
- 先清理错误的虚拟环境
# 先找到你在/usr里的虚拟环境目录,比如叫venv的话 sudo rm -rf /usr/venv - 切换到项目目录,重新创建用户权限下的虚拟环境
cd /home/pi/pi-relay-controller-modmypi python3 -m venv venv - 激活虚拟环境(每次运行项目前都要做这一步,激活后命令行开头会出现
(venv)标识)source venv/bin/activate - 安装项目所需依赖
如果仓库里有requirements.txt文件,直接执行:
如果没有这个文件,手动安装缺失的包:pip install -r requirements.txtpip install flask flask_bootstrap - 启动服务器
python server.py
额外注意事项
- 永远不要用
sudo运行pip或者python,否则会绕过虚拟环境,把依赖装到系统Python里,再次出现包找不到的问题。 - 如果嫌每次手动激活麻烦,可以写个简单的启动脚本,把激活命令和启动命令放一起。
内容的提问来源于stack exchange,提问作者Ciccio Cappuccio
相关产品推荐
相关产品推荐

