在安卓系统的开发板上安装了termux后,在termux中安装了python以及opencv-python库。但是执行脚本文件时:
python test.py
发生错误:
Traceback (most recent call last):
File "/storage/emulated/0/Fang/yolov8_pose_latest/src/FeedProcessor_software.py", line 4, in <module>
import cv2
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/cv2/__init__.py", line 181, in <module>
bootstrap()
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/cv2/__init__.py", line 153, in bootstrap
native_module = importlib.import_module("cv2")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/data/com.termux/files/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ImportError: dlopen failed: cannot locate symbol "_ZN4absl12lts_2023080212log_internal9kCharNullE" referenced by "/data/data/com.termux/files/usr/lib/libopencv_dnn.so"...
这个错误表明在加载OpenCV库时发生了动态链接库(.so
文件)的问题,特别是无法找到一个特定的符号 _ZN4absl12lts_2023080212log_internal9kCharNullE
。这是因为在termux中使用pip安装opencv-python库时,没有同时安装它的一些依赖库。搜索后在这个网页上https://www.reddit.com/......找到了解决方案。即:
pkg install x11-repo
pkg install matplotlib
pkg reinstall opencv-python
安装x11-repo和matplotlib这两个依赖库后,重新安装opencv-python。执行后解决了import cv2的报错问题。