在我的 Raspberry Pi 上,我遇到了有关使用 PiCamera 模块的奇怪行为。
当从 IDLE (F5) 或命令提示符 ($python test.py) 启动时,以下代码运行顺利
import picamera
if __name__ == "__main__":
camera=picamera.PiCamera()
camera.close()
但是当我将相机对象放入一个类时,代码只会在从 IDLE (F5) 启动时运行:
import picamera
class VF:
def __init__(self):
self.camera = picamera.PiCamera()
def __del__(self):
self.camera.close()
if __name__ == "__main__":
myvf = VF()
当我从命令提示符启动上述代码时,我收到以下错误消息:
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
Traceback (most recent call last): File "test.py", line 14, in myvf = VF()
File "test.py", line 6, in init self.camera = picamera.PiCamera()
File "/usr/lib/python2.7/dist-packages/picamera/camera.py", line 379, in init camera_num, self.STEREO_MODES[stereo_mode], stereo_decimate)
File "/usr/lib/python2.7/dist-packages/picamera/camera.py", line 505, in _init_camera prefix="Camera component couldn't be enabled")
File "/usr/lib/python2.7/dist-packages/picamera/exc.py", line 133, in mmal_check raise PiCameraMMALError(status, prefix)
picamera.exc.PiCameraMMALError: Camera component couldn't be enabled: Out of resources (other than memory)
相机模块工作正常,我只是将代码剥离到尽可能小的尺寸。有没有人知道这个问题或类似的问题,并且可以提供解决方案? Python 版本是 2.7,Raspberry Rasbiab 系统是完全最新的。
提前致谢。
最佳答案
我为此苦苦挣扎了几个小时,并且不断出现“资源不足”错误。我终于发现,在我的拍照功能中,我需要确保我是这样做的:
相机 = PiCamera()
(...这里的相机设置...)
camera.capture(myfileName)
相机.close()
如果我不执行 close(),我每次都会收到该错误。
因此,请确保在“快照”之后立即调用 camera.close()。它为我解决了这个问题。
关于python-2.7 - 从命令提示符运行脚本时,PiCamera 无法初始化为类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27468543/