PiCamera无法正常工作


9

为了启动相机,我正在做

>>> import picamera 
>>> camera = picamera.PiCamera()
mmal: mmal_vc_component_enable: failed to enable compononent : ENOSPC
Traceback (most recent call last):
  File "<stdin>", line, in <module>
  ...
  ...
picamera.exc.PiCameraMMALError: Camera component couldn't be enabled: Out of resources (other than memory)

我检查了很多答案,告诉他们要更新软件包,但我做到了,但似乎无济于事。我的相机不见了,或者有解决方案吗?


1
您是否在raspi-config中启用了相机?
Werner KvalemVesterås2015年

是的,我这样做是通过配置sudo raspi-config
Coderaemon

1
确保您的相机连接正确的方式,像这样:adafruit.com/blog/wp-content/uploads/2014/01/...
沃纳KvalemVesterås

是的,相机是正确的。电源红色LED点亮。
Coderaemon

1
您是否尝试过通过命令行从命令行操作相机raspistill?如果不工作,也许您应该咨询相机麻烦喊指南raspberrypi.org/documentation/troubleshooting/hardware/...
沃纳KvalemVesterås

Answers:


8

除了其他答案之外,我只想提及此错误的原因还可能是当前正在使用相机的另一个进程。


2
我想你可能是对的。中断没有响应的相机脚本后(使用CTRL-C),我开始出现此错误。在此之前,相机工作正常。那么,如何释放/重置相机使其可以再次使用?
条例草案

就我而言,motion图书馆正在使用相机。跑步sudo service motion stop解决了我的问题
Laura Corssac

6

Raspberry Pi摄像头模块使用板载GPU及其内存。由于您的错误消息提到资源不足,请考虑至少(可能超过)建议的最小128MB分配给GPU的分配。

要更改它:

sudo raspi-config

选择:高级选项->内存拆分->并设置至少128MB

一些用户报告此消息在将GPU内存分配从128MB更改为256MB后消失了。


对我来说就是这种情况。更新后,128MB不够用了,我不得不将其设置为256MB。
Nicolas BADIA

4

我在Rasp Pi 3中遇到了同样的问题。我启动了一个python脚本,该脚本每秒钟需要1张图像。我按下ctrl-z来中断脚本的执行,大约一半。当我再次尝试运行脚本时,出现了此错误,尽管似乎没有其他脚本在使用相机。

解决方法:输入“ ps -a”以列出所有当前正在运行的进程。寻找一个在输出中显示“ python”或“ python3”的代码,如下所示:
PID TTY TIME CMD 1218 tty1 00:00:00 bash 2203 pts/0 00:00:00 python 8960 pts/1 00:00:00 ps

使用命令“ kill -KILL [PID#]”停止python进程。对于这种情况,命令为“ kill -KILL 2203”。

完成此操作后,再次使用“ ps -a”以确保未列出python进程。

这为我解决了问题,并且我能够再次运行脚本而没有任何问题。

希望这可以帮助。



3

解决方案是确保该行在camera = PiCamera()任何循环或函数之外。

如果camera = PiCamera()每次函数运行时都调用该行,则相机内存不足。

camera = PiCamera()

def Take_an_Image():

    camera.resolution = (1024, 768)
    camera.start_preview()
    camera.capture("Test")

似乎该特定错误不是由于内存不足而导致的(错误是“无法启用相机组件:资源(内存除外)”),并且OP没有在其中声明其相机一个循环,但是如果有人确实用完了内存,这是一个很好的建议。
Aurora0001年

3

对于任何其他有此问题的人...如果启动时指示灯亮着,那么您实际上可能有错误的带状电缆端口!电缆将很好地适合LCD端口,并且指示灯将亮起,一切正常。但是您会收到错误消息,说要启用设备。

沃纳指出: https://blog.adafruit.com/wp-content/uploads/2014/01/1646pi_LRG-600x461.jpg


1

除了alcor的答案外,请确保您运行raspi-config,并在启动后选择选项5以启用相机支持。

我认为您可能需要使用sudo


1

事实证明,我的Raspberry Pi的Camera端口有一些问题。更换了Pi后,相机工作正常。


1

我遇到了同样的问题。我意识到,由于我是通过httpd广播视频的,所以我无法通过Python使用这些图像。我必须选择让Python脚本访问图像,或者让Apache服务器通过浏览器提供视频。一次只能有一个进程可以访问摄像机。


1

我有这个资源问题,原来是fonction camera.capture(filename)是问题,因为文件已经存在。


1

在我的代码中,有一个愚蠢的错误引发了该错误:我打开了相机一次,但是当用户单击硬件按钮时有意尝试再次打开它。在第二次调用PiCamera()之前关闭相机即可解决此问题。


0

如果您的按钮未正确连接,则会出现此错误。Pi会认为按下该按钮并不断尝试拍照,因此您将没有资源!

确保将按钮插入正确的GPIO引脚,然后继续其他调试方法。


0

只是我的一分钱。.我写了一个小程序,需要一系列照片。它在IDLE中工作正常,但从命令行中却遇到了完全相同的错误,即资源不足。通过在KeyboardInterrupt:之后添加camera.close()来解决此问题,即Ctrl + C(在python shell中)。当您需要突围时。


感谢您的回答。因为这是您的第一个答案,所以系统已提示我对其进行审查,并提出可能有助于您改进它的任何评论。我正在努力了解您建议的答案是什么。请尝试更具体;例如,提供一些您认为可以解决问题的代码。我还建议您阅读“如何写一个好的答案”。请考虑这些建议,并相应地编辑答案。
Seamus

0

就我而言,遇到相同的错误,请更换相机模块以解决该问题。通过在好坏相机模块之间来回切换,我能够可靠地重现该错误。我的代码没有遭受其他人指出的问题。因此看来硬件问题也可能导致此异常。

例外是:

picamera.exc.picamerammalerror:无法启用连接:资源不足

Picamera版本为1.13,摄像头模块为v2.1

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.