从命令提示符运行脚本时,PiCamera 无法初始化为类成员

2024-04-20

在我的 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:未能启用组件:ENOSPC

回溯(最近一次调用):文件“test.py”,第 14 行,位于 myvf = VF()

文件“test.py”,第 6 行,位于initself.camera = picamera.PiCamera()

文件“/usr/lib/python2.7/dist-packages/picamera/camera.py”,行 379,在initcamera_num,self.STEREO_MODES [stereo_mode],stereo_decimate)

文件“/usr/lib/python2.7/dist-packages/picamera/camera.py”,行 505,在_init_camera中 prefix="无法启用相机组件")

文件“/usr/lib/python2.7/dist-packages/picamera/exc.py”,第 133 行, 在 mmal_check 中 引发 PiCameraMMALError(状态,前缀)

picamera.exc.PiCameraMMALError:无法启用相机组件: 资源不足(内存除外)

相机模块工作正常,我只是将代码精简到尽可能小的大小。有谁知道这个问题或类似的问题,并且可以提供解决方案? Python 版本为 2.7,Raspberry Rasbiab 系统完全是最新的。 提前致谢。


我在这个问题上挣扎了几个小时,并且不断收到“资源不足”错误。我终于发现在我的拍照功能中,我需要确保我是这样做的:



    camera = PiCamera()
    (...camera settings here...)
    camera.capture(myfileName)
    camera.close()
  

如果我不执行 close(),我每次都会收到该错误。 因此,请确保在“捕捉”之后立即调用camera.close()。它为我解决了问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从命令提示符运行脚本时,PiCamera 无法初始化为类成员 的相关文章

随机推荐