Python
RaspberryPi
picamera

picameraでエラー発生時の対象方法

picameraでエラーが発生した際の備忘録です。

現象

picameraのインスタンス生成時に下記のようなエラーが発生

>>> import picamera
>>> camera = picamera.PiCamera()
mmal: mmal_vc_port_enable: failed to enable port vc.null_sink:in:0(OPQV): ENOSPC
mmal: mmal_port_enable: failed to enable connected port (vc.null_sink:in:0(OPQV))0x113f660 (ENOSPC)
mmal: mmal_connection_enable: output port couldn't be enabled
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/site-packages/picamera/camera.py", line 433, in __init__
    self._init_preview()
  File "/usr/local/lib/python3.6/site-packages/picamera/camera.py", line 513, in _init_preview
    self, self._camera.outputs[self.CAMERA_PREVIEW_PORT])
  File "/usr/local/lib/python3.6/site-packages/picamera/renderers.py", line 558, in __init__
    self.renderer.inputs[0].connect(source).enable()
  File "/usr/local/lib/python3.6/site-packages/picamera/mmalobj.py", line 2212, in enable
    prefix="Failed to enable connection")
  File "/usr/local/lib/python3.6/site-packages/picamera/exc.py", line 184, in mmal_check
    raise PiCameraMMALError(status, prefix)
picamera.exc.PiCameraMMALError: Failed to enable connection: Out of resources

原因

比較のために複数のカメラ用ソフトウェアをインストールしており、他のプロセスがカメラモジュールにアクセスしていたため、リソースの競合が発生していました。
この時はRPi-Cam-Web-Interfaceが起動していたので、下記のコマンドで停止して事象を回避できることを確認しています。

# cd /usr/local/bin/RPi_Cam_Web_Interface
# ./stop.sh
>>> import picamera
>>> camera = picamera.PiCamera()
>>>