无法在 python 中使用 gphoto2 打开相机

Posted

技术标签:

【中文标题】无法在 python 中使用 gphoto2 打开相机【英文标题】:Could not open camera using gphoto2 in python 【发布时间】:2019-10-10 23:32:12 【问题描述】:

我尝试在 Raspberry PI 上使用 Python/gphoto2 控制 Sony Alpha。我已经尝试了许多 python 绑定(python-gphoto2、gphoto2-cffi、...),但它们都在创建相机对象的指令中失败(例如 my_cam = gphoto.Camera()),并出现错误:

"Could not claim interface 0 (Device or resource busy). 确保没有其他程序 (gvfs-gphoto2-volume-monitor) 或内核模块 (如 sdc2xx, stv680, spca50x) 正在使用该设备并且您已阅读/write 访问设备。”

我们试图杀死后台程序,确保内核模块没有运行,安装最新版本的库和 python 包,......但无法摆脱错误。此外,使用 libgphoto2 的 C 代码工作正常,因此资源不太可能真的很忙。我们怀疑问题出在 python 包中缺少 USB 库,并尝试安装 libusb-dev,......但它没有帮助。

还有什么我们应该尝试的建议吗?谢谢。

【问题讨论】:

【参考方案1】:

你提到尝试 python-gphoto2。我是那个包的作者。假设您已成功安装它,那么我将尝试 list-cameras.py 示例程序。它应该列出所有被 libgphoto2 识别的已连接并打开的相机。

如果 C 程序可以运行,但 Python 程序不能运行,您可以检查它们是否使用相同版本的 libgphoto2。在 C 程序的可执行文件和 python-gphoto2 编译模块之一上尝试ldd,例如/usr/local/lib/python3.5/dist-packages/gphoto2/_camera.cpython-35m-arm-linux-gnueabihf.so.

【讨论】:

听从您的建议,我们在计算机上发现了许多版本的 python 和 libgphoto2。全新安装操作系统和 python 后,示例脚本可以正常工作。非常感谢您的回答和精彩的节目。

以上是关于无法在 python 中使用 gphoto2 打开相机的主要内容,如果未能解决你的问题,请参考以下文章

带有gphoto2的树莓派摄影棚Web应用程序

在 Python 中,我无法使用 PIL 正确打开一些 png 图像

如何使 Python PyQT 程序无法在 Windows 中打开命令行

无法在 OpenCV python 中打开视频文件

无法使用 Python 打开访问数据库

无法使用 python 和 pyserial 打开 /dev/ttyusb0