问题出现原因:
-
系统包已安装但虚拟环境隔离
系统通过apt
安装了python3-libcamera
,但虚拟环境(yolov8-env
)默认不继承系统级 Python 包。 -
路径隔离机制
虚拟环境的sys.path
不包含系统包的路径(如/usr/lib/python3/dist-packages
),导致无法找到libcamera
模块。
解决方案:
方法一:重建虚拟环境并启用系统包继承
-
删除旧虚拟环境
确保彻底清除旧环境:rm -rf ~/yolov8-env
-
创建新虚拟环境并允许访问系统包
使用--system-site-packages
参数:python3 -m venv ~/yolov8-env --system-site-packages
-
激活环境并验证
source ~/yolov8-env/bin/activate python -c "import libcamera; print('Success!')"
方法二:手动添加系统包路径到虚拟环境
-
激活虚拟环境
source ~/yolov8-env/bin/activate
-
查找
libcamera
系统安装路径find /usr -name "libcamera*" 2>/dev/null
-
预期输出包含:
/usr/lib/python3/dist-packages/libcamera
-
-
临时添加路径(仅当前终端有效)
export PYTHONPATH="/usr/lib/python3/dist-packages:$PYTHONPATH"
-
永久生效配置
将路径写入虚拟环境的激活脚本:echo 'export PYTHONPATH="/usr/lib/python3/dist-packages:$PYTHONPATH"' >> ~/yolov8-env/bin/activate
-
验证模块导入
python -c "import libcamera; print('Success!')"
验证代码运行
-
确保依赖完整性
sudo apt install --reinstall python3-libcamera libcamera0
-
运行测试脚本
python test.py
常见问题排查
现象 | 原因 | 解决方案 |
---|---|---|
重建环境后仍报错 | 虚拟环境未正确启用系统包 | 检查创建命令是否包含 --system-site-packages |
PYTHONPATH 设置无效 | 路径拼写错误或权限问题 | 确认路径存在且可读(ls /usr/lib/python3/dist-packages/libcamera ) |
导入成功但代码崩溃 | 版本不兼容(如 picamera2 与 libcamera 版本冲突) | 更新所有依赖:sudo apt update && sudo apt upgrade |
操作流程图
[开始]
│
↓
检查虚拟环境是否启用系统包 → 否 → 方法一(重建环境)
│ 是 → 方法二(修改 PYTHONPATH)
↓
验证 libcamera 导入是否成功
│
↓
运行代码测试摄像头功能
│
↓
[成功]
的