You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu20.04下Qt Creator中C++调用Python导入cv2出现段错误如何解决

问题描述
  • 运行环境:Ubuntu 20.04,Python 3.8(conda虚拟环境部署),Qt Creator开发C++项目
  • 故障现象:C++调用Python执行import cv2时触发段错误,sys、numpy等其余模块可正常导入;cv2在conda环境命令行下可正常导入使用,手动指定site-packages路径无法解决问题
  • 核心故障代码:
// 初始化Python后直接导入cv2触发段错误
Py_InitializeEx(0);
PyRun_SimpleString("import cv2");
解决方案

该故障90%以上是opencv-python的GUI组件和项目使用的Qt库版本冲突,或是Python初始化时没有正确加载conda环境的依赖库路径导致,可按以下步骤逐一排查修复:

  • 优先替换无GUI版本的opencv:在激活的conda环境中执行如下命令,避免两个不同版本的Qt库符号冲突
pip uninstall opencv-python -y
pip install opencv-python-headless
  • 确保启动Qt Creator时继承conda环境变量:不要直接从快捷方式启动Qt Creator,先在终端激活conda环境后再启动,保证进程加载的库路径优先读取conda环境
conda activate 你的conda环境名称
qtcreator
  • 修正CMakeLists.txt的Python链接配置,强制链接conda环境内的Python库,避免误用系统自带Python:
# 替换为你自己的conda环境实际路径
set(Python_ROOT_DIR "/home/用户名/anaconda3/envs/你的环境名")
find_package(Python3 COMPONENTS Interpreter Development REQUIRED)
# 项目关联Python头文件和库文件
include_directories(${Python3_INCLUDE_DIRS})
target_link_libraries(你的项目编译目标名 PRIVATE ${Python3_LIBRARIES})
  • 若仍有问题,可在Python初始化后显式指定库加载路径:
Py_InitializeEx(0);
PyRun_SimpleString("import sys\n"
                   // 替换为自己的site-packages路径
                   "sys.path.insert(0, \"/home/用户名/anaconda3/envs/你的环境名/lib/python3.8/site-packages\")");

内容的提问来源于stack exchange,提问作者surajj4837

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:06:03