0

私は Ubuntu 20.04、python 3.8 を使用しており、Qt Creator で C++ プロジェクトを開発しています。C++ コードから python ファイルを呼び出そうとしています。conda で環境を作成し、py ファイルを呼び出しています。cv2 モジュールをインポートしようとすると、セグメンテーション違反が発生します。sys、numpy などの他のモジュールをインポートできます。cv2 は環境にインストールされており、cmd プロンプトから python を実行するとアクセスできます。

また、次のように、Python コマンドを C++ ファイルで直接実行しようとしました。

PyRun_SimpleString("import cv2");

しかし、これはセグメンテーション違反も送信します。CMakeLists.txt で site-packages ディレクトリのパスを指定しようとしましたが、同じエラーが発生しました。

メインウィンドウ.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;
}

Qt Creator デバッガーのスタック トレースは次のとおりです。 ここに画像の説明を入力 ここに画像の説明を入力

4

0 に答える 0