python 导入 cv2 时崩溃
python crashes on importing cv2
我已经使用 MinGW64 GCC 4.8.1 在 Windows 10(64 位)上为 Python 3.5.2(64 位)从源代码编译了 OpenCV 3.2.0。
但是,当我 运行 import cv2
、python 崩溃时。
使用 Visual Studio 调试 python.exe 显示以下堆栈跟踪
python35.dll!PyUnicode_FromString(const char * u) Line 1884
python35.dll!PyDict_GetItemString(_object * v, const char * key) Line 2810
python35.dll!add_getset(_typeobject * type, PyGetSetDef * gsp) Line 4526
python35.dll!PyType_Ready(_typeobject * type) Line 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/
我使用 Visual Studio 2015 重新编译,生成的 .pyd 工作正常。一定是 GCC 的问题。
我已经使用 MinGW64 GCC 4.8.1 在 Windows 10(64 位)上为 Python 3.5.2(64 位)从源代码编译了 OpenCV 3.2.0。
但是,当我 运行 import cv2
、python 崩溃时。
使用 Visual Studio 调试 python.exe 显示以下堆栈跟踪
python35.dll!PyUnicode_FromString(const char * u) Line 1884
python35.dll!PyDict_GetItemString(_object * v, const char * key) Line 2810
python35.dll!add_getset(_typeobject * type, PyGetSetDef * gsp) Line 4526
python35.dll!PyType_Ready(_typeobject * type) Line 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/
我使用 Visual Studio 2015 重新编译,生成的 .pyd 工作正常。一定是 GCC 的问题。