Я хотел установить Opencv и следовал этому руководству: https://medium.com/@sourabhjigjinni/install-opencv-4-0-0-for-c-windows-7-10-code-blocks-tdm-gcc-64-dff65addf162
Я следовал этому шаг за шагом, построил его в блоках кода, но примерно на 99% я получил ошибку: фатальная ошибка: Python.h: нет такого файла или каталога.
ПК: Windows 10, 64-битная версия, установлен Python3.
Я добавил полный путь к каталогу включения python в разделе «каталоги поиска» компилятора. Я проверил, были ли заполнены пути к python.exe и к каталогу include при создании файлов Makefile с помощью Cmake. Я также просмотрел множество форумов, но так и не нашел удовлетворительного ответа...
[ 99%] Building CXX object modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.obj
cd /d C:\opencv\build\modules\python3 && C:\TDM-GCC-64\bin\g++.exe -DCVAPI_EXPORTS -D_USE_MATH_DEFINES -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS @CMakeFiles/opencv_python3.dir/includes_CXX.rsp -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -Wno-long-long -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -Wno-unused-function -Wno-deprecated-declarations -Wno-overloaded-virtual -Wno-undef -O3 -DNDEBUG -DNDEBUG -std=c++11 -o CMakeFiles\opencv_python3.dir\__\src2\cv2.cpp.obj -c C:\opencv\source\opencv-4.1.0\modules\python\src2\cv2.cpp
C:\opencv\source\opencv-4.1.0\modules\python\src2\cv2.cpp:9:20: fatal error: Python.h: No such file or directory
compilation terminated.
mingw32-make.exe[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.obj] Error 1
mingw32-make.exe[1]: *** [modules/python3/CMakeFiles/opencv_python3.dir/all] Error 2
mingw32-make.exe: *** [all] Error 2
modules\python3\CMakeFiles\opencv_python3.dir\build.make:62: recipe for target 'modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.obj' failed
mingw32-make.exe[2]: Leaving directory 'C:/opencv/build'
CMakeFiles\Makefile2:3512: recipe for target 'modules/python3/CMakeFiles/opencv_python3.dir/all' failed
mingw32-make.exe[1]: Leaving directory 'C:/opencv/build'
C:/opencv/build/Makefile:161: recipe for target 'all' failed
Process terminated with status 2 (0 minute(s), 37 second(s))
4 error(s), 0 warning(s) (0 minute(s), 37 second(s))
Что ж, я перепробовал все, что знал, чтобы сообщить компилятору, где находится Python.h, но, похоже, это не сработало. Дайте мне знать, если вам нужно больше данных.
Спасибо за ответ ! Я добавил C:\Users\Me\AppData\Local\Programs\Python\Python37\include в разделе Compiler - search directory, разве этого не должно быть достаточно?
Что странно, так это то, что если собрать тестовый проект с помощью: include <Python.h>, он отлично работает... Только OpenCV.cbp не работает...
Просто чтобы убедиться, вы добавили этот путь в code::blocks или Cmake?






Кажется, Cmake не может найти заголовочный файл Python.h в каталоге @Cmakefiles/opencv_python.dir.
Что попробовать:
Возможно, вам придется попытаться найти, как установить флаг @Cmakefiles/opencv_python.dir в интерфейсе Cmake или вручную в CMakeLists.txt и установить его в нужное Python.h место.
Кроме того, убедитесь, что флаг Cmake Python include path указан правильно (PYTHON_INCLUDE=/path/to/python/include/).
Наконец, убедитесь, что ваш путь Python установлен правильно, следуя этому сообщению здесь с вашим местоположением Python.
Редактировать: Я смог следовать инструкциям и получить демонстрацию веб-камеры для сборки и запуска. Это было протестировано в Windows 10 с Python 3.7.1. Не знаете, что попробовать, кроме полной переустановки. Если у вас есть какие-либо вопросы или вы хотите узнать конкретную информацию, дайте мне знать, и если я придумаю, что попробовать, я отредактирую этот пост. Удачи.
Python уже добавлен в мой путь, путь PYTHON3_INCLUDE_DIR правильный, и я все еще получаю сообщение об ошибке. Я попытаюсь принудительно включить заголовки Python в CMakeLists.txt. Спасибо за вашу помощь!
Это довольно странно... Если у меня будет время чуть позже, я попытаюсь воспроизвести это на виртуальной машине. Удачи, и добро пожаловать!
Я удалю проект и перенастрою его, а затем перестрою с нуля. В первый раз, когда я его построил, я не добавлял каталог включения python в «каталоги поиска» компилятора в code::blocks и другие вещи. Это может быть решением для него. Спасибо за внимание!
Хорошо, я пересобрал все с нуля (удалил содержимое папки opencv/build + повторно сгенерировал CMakeFiles с помощью Cmake), и все собралось без ошибок. Мои ошибки : - В первый раз, когда я создал OpenCV.cbp, мой путь к папке python include не был указан в «каталогах поиска» в code::blocks. - После нескольких неудачных сборок я изменил свою версию Python и актуализировал все пути Python в Cmake и добавил путь include dir в code::blocks.
Проблема: OpenCV.cbp не учла все изменения, даже если пересобрала его (почему), и продолжала запрашивать Python.h
Решить проблему : ПЕРЕД созданием OpenCV.cbp убедитесь, что пути python, указанные в Cmake, верны, и добавьте каталог python include в code::blocks «каталоги поиска», что не было в моем случае. Тогда строй!
-I/full/path/to/python-include-directory/в строкеcd /d C:\opencv\build\modules\python3 && C:\TDM-GCC-64\bin\g++.exe -DCVAPI_EXPORTS ...