python在导入cv2时崩溃

时间:2017-02-11 10:18:00

标签: python opencv dll mingw-w64

我使用MinGW64 GCC 4.8.1从源代码编译OpenCV 3.2.0,在Windows 10(64位)上编译,用于Python 3.5.2(64位)。

但是,当我运行import cv2时,python会崩溃。

使用Visual Studio调试python.exe显示以下堆栈跟踪

  

python35.dll!PyUnicode_FromString(const char * u)第1884行     python35.dll!PyDict_GetItemString(_object * v,const char * key)2810行
    python35.dll!add_getset(_typeobject * type,PyGetSetDef * gsp)Line 4526
    python35.dll!PyType_Ready(_typeobject * type)4874行     cv2.cp35-win_amd64.pyd!0000000070cee706()
    ...

有什么想法吗?

我的OpenCV编译过程:

我的cmake命令(CMake 3.7.2)是

cmake -G "MinGW Makefiles" -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DOPENCV_EXTRA_MODULES_PATH=D:/opencv/source/opencv_contrib/modules D:/opencv/source/opencv -DBUILD_opencv_python3=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DBUILD_DOCS=OFF -DPYTHON_EXECUTABLE=D:/Python352/python.exe -DPYTHON_INCLUDE_DIRS=D:/Python352/include -DPYTHON_LIBRARY=D:/Python352/libs/libpython35.a

然后我使用mingw3-make进行编译,编译时没有错误。我将生成的cv2.cp35-win_amd64.pyd(~39 MB)移到Python352/Lib/site-packages/

1 个答案:

答案 0 :(得分:0)

我使用Visual Studio 2015重新编译,生成的.pyd工作正常。一定是GCC的问题。