Ubuntu20.04源码编译OpenCV后GStreamer未启用问题求助
问题排查与解决方法
确认Python加载的cv2库路径
先执行以下命令,查看当前Python实际加载的cv2库位置:python3 -c "import cv2; print(cv2.__file__)"如果输出路径不是你编译安装的目标目录(通常是
/usr/local/lib/python3.8/site-packages/cv2),说明系统中仍有其他OpenCV版本残留。比如可能通过apt安装过python3-opencv,需要彻底卸载:sudo apt remove --purge python3-opencv检查CMake编译时的Python配置
重新运行CMake时,务必确认Python相关参数指向你当前使用的环境。如果用了虚拟环境,先激活环境再执行CMake;或者手动指定Python路径参数,示例命令如下:cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D WITH_GSTREAMER=ON \ -D PYTHON3_EXECUTABLE=$(which python3) \ -D PYTHON3_INCLUDE_DIR=$(python3 -c "from sysconfig import get_paths; print(get_paths()['include'])") \ -D PYTHON3_LIBRARY=$(python3 -c "from sysconfig import get_paths; print(get_paths()['stdlib'])") \ -D PYTHON3_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \ ..执行后仔细查看CMake输出,确保
Python3和GStreamer均显示为YES,且Python的各项路径与当前环境一致。编译安装后更新动态链接库
完成make install后,执行以下命令更新系统动态链接库缓存,避免加载旧版本库文件:sudo ldconfig清理编译缓存重新构建
若之前的编译缓存存在异常,删除build目录后重新编译:rm -rf build mkdir build && cd build # 执行上述正确的CMake命令 make -j$(nproc) sudo make install sudo ldconfig验证GStreamer依赖完整性
确保已安装所有GStreamer开发依赖包,Ubuntu 20.04下执行:sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly部分依赖缺失可能导致CMake显示GStreamer启用,但实际未将支持编译进Python绑定。
内容的提问来源于stack exchange,提问作者jessicalfr
相关产品推荐
相关产品推荐

