天天看點

UBUNTU16 Qt中 C++調用Python import cv2時出錯,求大佬解答

UBUNTU16 Qt中 C++調用Python import cv2時出錯,已解答

    • 環境
    • 代碼
    • 嘗試過的解決方法:

環境

  • Ubuntu16.04
  • anaconda2虛拟環境裡使用的 Python3.6
  • Qt5.6
  • OpenCV 3.4

代碼

PyRun_SimpleString("import sys");
    PyRun_SimpleString("sys.path.append('./')");
    PyRun_SimpleString("sys.path.append('/home/wanghao/MyQtSpace/QT_diaoyong')");
    PyRun_SimpleString("sys.path.append('/home/wanghao/anaconda2/envs/yolo/lib/python3.6/site-packages')");
    PyRun_SimpleString("sys.path.append('/usr/local/')");
    PyRun_SimpleString("import numpy");
    PyRun_SimpleString("import cv2");// 每次到這裡就爆炸了
    //  PyRun_SimpleString("import matplotlib");
    importArray();
    pyArray = NULL; //
    argArray= NULL; // 
    m_pFunc_Detect= NULL; //
    singleResult= NULL; // 
    pModule= NULL; //
    pModule=PyImport_ImportModule("result_test"); //import py檔案
    PyErr_Print();
    m_pFunc_Detect = PyObject_GetAttrString(pModule, "test");
    PyErr_Print();
    QMessageBox::about(NULL, "", "環境加載成功");
           

C++、Python混合程式設計需要初始化這些東西,但每次到

接着問題就來了:

UBUNTU16 Qt中 C++調用Python import cv2時出錯,求大佬解答

嘗試過的解決方法:

1. 改變 Opencv 版本,嘗試過的版本:

  • Opencv2.4.9
  • Opencv3.0.0
  • Opencv3.0.0
  • Opencv3.1.0
  • Opencv3.2.0
  • Opencv3.3.0
  • Opencv3.4.0
  • Opencv4.0.0

然鵝并不行!!!

2. 改變python版本

用UBUNTU自帶的Python2,是不會報錯的,但是Python3會報錯.

腫麼辦,我枯了

問題解決了,之前試了幾次兩個版本python都出現了報錯,才發現不是python版本問題。 把pip裡的python-opencv版本降低成了3.1.0.0,就沒問題了,至于python-opencv的其他版本我沒試不知道有沒有問題。