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混合程式設計需要初始化這些東西,但每次到
接着問題就來了:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL90TUhhGetJGaodVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmLyITOyIjNwUTM4EjMxgTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
嘗試過的解決方法:
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的其他版本我沒試不知道有沒有問題。