在buildroot生成的linux映像上,from picamera import PiCamera
给出了python3.7中的以下错误。感谢关于如何修复的建议。谢谢!
/usr/bin/python3.7: symbol 'mmal_port_pool_create': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_list_push_front': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_list_destroy': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_rational_to_fixed_16_16': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_status_to_string': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_list_push_back': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_list_create': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_list_insert': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_rational_equal': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_list_pop_front': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_port_type_to_string': can't resolve symbol
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.7/site-packages/picamera/__init__.py", line 72, in <module>
from picamera.exc import (
File "/usr/lib/python3.7/site-packages/picamera/exc.py", line 41, in <module>
import picamera.mmal as mmal
File "/usr/lib/python3.7/site-packages/picamera/mmal.py", line 49, in <module>
_lib = ct.CDLL('libmmal.so')
File "/usr/lib/python3.7/ctypes/__init__.py", line 356, in __init__
self._handle = _dlopen(self._name, mode)
OSError: dlopen() error
启用摄像头并重新启动
您需要选择
rpi-userland
包。在我假设你在做覆盆子派,否则picamera不适合你。在
picamera试图打开诽谤罪共享库。
rpi-userland
Buildroot包将下载、生成和安装此库。在如果为
python-picamera
创建了Buildroot包,则应将select BR2_PACKAGE_RPI_USERLAND
添加到其Config.in
文件中,并复制rpi userland包的依赖项。在python-picamera.mk
文件中,应该添加PYTHON_PICAMERA_DEPENDENCIES += rpi-userland
。这将确保在启用picamera时始终选择并构建包。在另外,如果您有一个正在工作的
python-picamera
包,请考虑将其发送到contribution guidelines之后的上游。在如果没有为
python-picamera
生成Buildroot包,这可能是问题的根源。PyPI中的picamera包与libmmal的特定版本链接,该版本可能与Buildroot中的版本不同。这可能会导致导入模块时看到的错误。在我最后只能用拉斯皮斯蒂尔。。。在
相关问题 更多 >
编程相关推荐