1. 安装

1.1 Raspbian 安装

如果你的树梅派正在使用 Raspbian 系统, picamera 模块已经默认安装在你的系统里, 用几个简单的命令可以检测模块是否运行正常:

1
2
$python -c "import picamera"
$python3 -c "import picamera"

如果没报错, 那么恭喜你, 模块已经正常运行在你的设备上. 你可以直接开始使用这个模块, 如果模块没有被正常安装, 你可能会得到像下面这样的错误:

1
2
3
4
5
6
7
8
$ python -c "import picamera"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named picamera
$ python3 -c "import picamera"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named 'picamera'

在 Raspbian 上安装 picamera 模块, 最好使用系统自带的包管理器: apt. 它能够实现时实更新, 并且方便卸载如果你真的忍心抛弃卸载的话. apt 安装对这个系统上的所有用都有效, 你只需要运行以下几个简单的命令:

1
2
$ sudo apt-get update
$ sudo apt-get install python-picamera python3-picamera

如果本模块发布了新版本的话, 通过 apt 的正常更新步骤就能同步本模块:

1
2
$ sudo apt-get update
$ sudo apt-get upgrade

如果你想卸载的话, 只要运行:

1
$ sudo apt-get remove python-picamera python3-picamera

1.2 其他发行版安装

相比于 Raspbian, 其他发行版可能用 Python 自带的工具 pip 安装更加方便:

1
$ sudo pip install picamera

如果你想用 picamera.array 模块里面的类(classes), 那么你要指定 “array” 参数, 这会把 numpy 模块作为依赖安装:

1
$ sudo pip install "picamera[array]"

注意
如果你用一个特别老的版本的 pip, 它会试图从源码安装 numpy. 在性能低的 Pi 上可能会花几个小时. 新版本的 pip 下载和安装一个提前编译好的 numpy 的 wheel 文件. 相对来讲, 这会快很多很多.

将模块同步到最新版本:

1
$ sudo pip install -U picamera

卸载的话, 只要运行:

1
$ sudo pip uninstall picamera

1.3 固件升级

Pi 摄像头的行为决定于 Pi 的固件版本, 随着时间的推移, 大量对树梅派相机的 bug 修复和功能添加会跟随固件版本推出. 但虽然 picamera 库尽量保持向后兼容旧的固件版本, 但是它只针对最新版进行了测试. 如果你运行在旧的固件版本上, 并不是所有功能都是可用的. 举个例子, 最近的固件版本中添加了 annotate_text 属性, 旧的固件就缺少这个功能.

你可以用以下命令来确定 Pi 的固件版本:

1
$ uname -a

# 号后面的数字就是当前固件版本

1
2
3
4
Linux kermit 3.12.26+ #707 PREEMPT Sat Aug 30 17:39:19 BST 2014 armv6l GNU/Linux
/
/
firmware revision --+

在 Raspbian系统上, 标准的系统更新操作就能保持固件为最新版本:

1
2
$ sudo apt-get update
$ sudo apt-get upgrade

注意
先前, 本文档推荐使用 rpi-update 工具更新 Pi 的固件; 现在已经不鼓励这样做了, 如果你先前使用过 rpi-> update , 通过以下命令你可以切换到使用 apt 来管理你的固件更新:

1
2
3
4
$ sudo apt-get update
$ sudo apt-get install --reinstall libraspberrypi0 libraspberrypi-{bin,dev,doc} z
\> raspberrypi-bootloader
$ sudo rm /boot/.firmware_revision

运行完之后, 你需要重启系统.


注意
你需要注意一些 PITFT 屏幕( 还有类似的, 通过 GPIO 驱动的屏幕 ) 需要一个用于驱动屏幕的自定义固件, 这些固件落后于官方固件. 在写这篇文档的时候他们缺少一些特性包括长曝光 (long exposures) 和文本覆盖 (text overlays).