我正在使用 Ubuntu 20.04、python 3.8 并在 Qt Creator 中开发 C++ 项目。我正在尝试从 C++ 代码调用 python 文件。我在 conda 中创建了一个环境并调用了 py 文件。尝试导入 cv2 模块时发生分段错误。可以导入 sys、numpy 等其他模块。cv2 安装在环境中,当我从 cmd 提示符运行 python 时可以访问。
我还尝试直接在 C++ 文件中运行 python 命令,例如:
PyRun_SimpleString("import cv2");
但这也会发送分段错误。我尝试在 CMakeLists.txt 中给出站点包目录的路径,但它也导致了同样的错误。
主窗口.cpp:
#include "mainwindow.h"
#include "./ui_mainwindow.h"
#include <stdio.h>
#include <pyhelper.hpp>
#include <string>
#include <iostream>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
Py_InitializeEx(0);
PyRun_SimpleString("import cv2");
}
MainWindow::~MainWindow()
{
delete ui;
}