Установка opencv для Python 3.3
по-прежнему ли OpenCV недоступен для Python 3.3 и действительно ли мне нужно перейти на Python 2.7, чтобы использовать его? Я не нашел много об этом в интернете, только некоторые сообщения от 2012 года, что OpenCV еще не был портирован для использования в Python 3.х. Но сейчас 2014 и после попытки установить последнюю формате OpenCV 2.4.x и копирование cv2.pyd
file to C:Program файлы (x86)Python333Libsite-packages это все еще дает ошибку в Python IDLE:
>>> import cv2
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import cv2
ImportError: DLL load failed: %1 ist keine zulässige Win32-Anwendung.
13 ответов:
Примечание: исходный вопрос задавался для OpenCV + Python 3.3 + Windows. С тех пор Python 3.5 был выпущен. Кроме того, я использую Ubuntu для большинства разработок, поэтому этот ответ будет сосредоточен на этой настройке, к сожалению
OpenCV 3.1.0 + Python 3.5.2 + Ubuntu 16.04 возможно! Вот как это делается.
эти шаги копируются (и слегка модифицированный) от кого:
- http://docs.opencv.org/3.1.0/d7/d9f/tutorial_linux_install.html
- https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_setup_in_fedora/py_setup_in_fedora.html#install-opencv-python-in-fedora
предпосылки
установите необходимые зависимости и при необходимости установите / обновите некоторые библиотеки на вашем компьютере система:
# Required dependencies sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev # Dependencies for Python bindings # If you use a non-system copy of Python (eg. with pyenv or virtualenv), then you probably don't need to do this part sudo apt install python3.5-dev libpython3-dev python3-numpy # Optional, but installing these will ensure you have the latest versions compiled with OpenCV sudo apt install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
Строительство OpenCV
Флаги CMake
есть несколько флагов и опций для настройки сборки OpenCV. Там может быть полная документация о них, но вот некоторые интересные флаги, которые могут использовать. Они должны быть включены в :
# Builds in TBB, a threading library -D WITH_TBB=ON # Builds in Eigen, a linear algebra library -D WITH_EIGEN=ON
использование версий Python несистемного уровня
если у вас есть несколько версий Python (например. от использования pyenv или virtualenv), тогда вы можете построить против определенной версии Python. По умолчанию в формате OpenCV будет основываться на версии системы на Python. Вы можете изменить это, добавив эти аргументы
cmake
команда, увиденная позже в скрипте. Фактические значения будут зависеть от вашей установки. Я используюpyenv
:-D PYTHON_DEFAULT_EXECUTABLE=$HOME/.pyenv/versions/3.5.2/bin/python3.5 -D PYTHON_INCLUDE_DIRS=$HOME/.pyenv/versions/3.5.2/include/python3.5m -D PYTHON_EXECUTABLE=$HOME/.pyenv/versions/3.5.2/bin/python3.5 -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1
сообщения об ошибках CMake Python
файл CMakeLists будет пытаться обнаружить различные версии Python для сборки. Если у вас есть разные версии здесь, это может запутаться. Приведенные выше аргументы могут только "исправить" проблему для одной версии Python, но не для другой. Если вы заботитесь только об этой конкретной версии, то нечего беспокоиться.
это так для меня, к сожалению, я не изучал, как решить проблемы с другими версиями Python.
установить скрипт
# Clone OpenCV somewhere # I'll put it into $HOME/code/opencv OPENCV_DIR="$HOME/code/opencv" OPENCV_VER="3.1.0" git clone https://github.com/opencv/opencv "$OPENCV_DIR" # This'll take a while... # Now lets checkout the specific version we want cd "$OPENCV_DIR" git checkout "$OPENCV_VER" # First OpenCV will generate the files needed to do the actual build. # We'll put them in an output directory, in this case "release" mkdir release cd release # Note: This is where you'd add build options, like TBB support or custom Python versions. See above sections. cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local "$OPENCV_DIR" # At this point, take a look at the console output. # OpenCV will print a report of modules and features that it can and can't support based on your system and installed libraries. # The key here is to make sure it's not missing anything you'll need! # If something's missing, then you'll need to install those dependencies and rerun the cmake command. # OK, lets actually build this thing! # Note: You can use the "make -jN" command, which will run N parallel jobs to speed up your build. Set N to whatever your machine can handle (usually <= the number of concurrent threads your CPU can run). make # This will also take a while... # Now install the binaries! sudo make install
по умолчанию
install
скрипт поместит привязки Python в некотором системном местоположении, даже если вы указали пользовательский версия Python для использования. Исправление простое: поместите символическую ссылку на привязки в вашем локальномsite-packages
:ln -s /usr/local/lib/python3.5/site-packages/cv2.cpython-35m-x86_64-linux-gnu.so $HOME/.pyenv/versions/3.5.2/lib/python3.5/site-packages/
первый путь будет зависеть от версии Python, которую вы настроите для сборки. Второй зависит от того, где находится ваша пользовательская версия Python.
да поддержка Python 3 он по-прежнему не доступен в текущей версии, но он будет доступен из версии 3.0, (см. этот билет). Если вы действительно хотите иметь python 3 Попробуйте использовать версию разработки, вы можете скачать его от GitHub.
изменить (18/07/2015): версия 3.0 теперь выпущен и поддержка python 3 Теперь официально доступна
здесь решение для (Я считаю, как видно из "cp34" по ссылке ниже) Python 3.4.
перейти к to http://www.lfd.uci.edu / ~gohlke / pythonlibs / #opencv.
скачать соответствующий .колесо.
перейти в каталог, где .whl сохраняется.
используйте pip для установки .колесо. например,
pip install opencv_python-3.0.0-cp34-none-win_amd64.whl
тогда просто используйте
import cv2
.
Я не могу прокомментировать отличную мидопу ответ из-за отсутствия репутации.
на Mac I (наконец) успешно установлен opencv из источника С помощью следующей команды:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D PYTHON_EXECUTABLE=/Library/Frameworks/Python.framework/Versions/3.4/bin/python3 -D PYTHON_LIBRARY=/Library/Frameworks/Python.framework//Versions/3.4/lib/libpython3.4m.dylib -D PYTHON_INCLUDE_DIR=/Library/Frameworks/Python.framework/Versions/3.4/include/python3.4m -D PYTHON_NUMPY_INCLUDE_DIRS=/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/numpy/core/include/numpy -D PYTHON_PACKAGES_PATH=/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages /relative/path/to/source/directory/
затем,
make -j8
измените 8 на количество потоков, которые может обрабатывать ваша машина, чтобы ускорить процесс
sudo make install
добавил
PYTHONPATH
переменная окружения для моего~/.bash_profile
файл, чтобы Python мог найтиcv2.so
:PYTHONPATH="${PYTHONPATH}:/usr/local/lib/python3.4/site-packages” export PYTHONPATH
[для тех, кто использует PyCharm, мне пришлось перейти в Настройки > структура проекта > добавить корень контента и добавить путь к С:
/usr/local/lib/python3.4/site-packages
]эта команда получила меня прошлые ошибки, такие как:
Could NOT find PythonLibs
, явно объявив путь к библиотеке pythonld: can't link with a main executable for architecture x86_64 collect2: error: ld returned 1 exit status make[2]: *** [lib/cv2.so] Error 1 make[1]: *** [modules/python2/CMakeFiles/opencv_python2.dir/all] Error 2 make: *** [all] Error 2
явно указывая на libpython3.4m. dylib
в терминале, проверьте, что он работал с:
$python3 >>> import cv2
это все хорошо, если вы не получите
ImportError: No module named 'cv2'
это работало на MacBook Pro Retina 15 " 2013, Mavericks 10.9.4, Python 3.4.1 (ранее установлен с официальный скачать), opencv3 от источника. Надеюсь, что это кому-то поможет.
Я знаю, что это старый поток, но на всякий случай кто-то смотрит, вот как я получил его работу на El Capitan:
brew install opencv3 --with-python3
и подождите некоторое время, пока он закончит.
затем при необходимости выполните следующие действия:
brew unlink opencv
затем выполните следующие действия в качестве последнего шага:
brew ln opencv3 --force
теперь вы должны быть в состоянии запустить
import cv2
нет проблем в python 3.х сценарий.
используйте приложение pip. На окна вы найдете его в
Python3/Scripts/pip.exe
и на Ubuntu вы можете установить сapt-get install python3-pip
. и так, используйте командную строку:
pip3 install --upgrade pip
pip3 install opencv-python
В Windows используйте только pip.exe вместо pip3
у меня было много проблем с получением opencv 3.0 для работы на OSX с привязками python3 и виртуальными средами. Другие ответы очень помогли, но все равно потребовалось немного. Надеюсь, это поможет следующему человеку. Сохраните это в
build_opencv.sh
. Тогда скачать opencv, измените переменные в приведенном ниже сценарии оболочки, скрестите пальцы и запустите его (. ./build_opencv.sh
). Для отладки используйте другие сообщения, особенно Джеймс Флетчер.не забудьте добавить opencv lib dir к вашему PYTHONPATH.
Примечание-это также загружает opencv-contrib, где многие функции были перемещены. И на них также теперь ссылается другое пространство имен, чем документация - например, SIFT теперь находится под cv2.xfeatures2d.SIFT_create. Угу.
#!/bin/bash # Install opencv with python3 bindings: https://stackoverflow.com/questions/20953273/install-opencv-for-python-3-3/21212023#21212023 # First download opencv and put in OPENCV_DIR # # Edit this section # PYTHON_DIR=/Library/Frameworks/Python.framework/Versions/3.4 OPENCV_DIR=/usr/local/Cellar/opencv/3.0.0 NUM_THREADS=8 CONTRIB_TAG="3.0.0" # This will also download opencv_contrib and checkout the appropriate tag https://github.com/Itseez/opencv_contrib # # Run it # set -e # Exit if error cd ${OPENCV_DIR} if [[ ! -d opencv_contrib ]] then echo '**Get contrib modules' [[ -d opencv_contrib ]] || mkdir opencv_contrib git clone git@github.com:Itseez/opencv_contrib.git . git checkout ${CONTRIB_TAG} else echo '**Contrib directory already exists. Not fetching.' fi cd ${OPENCV_DIR} echo '**Going to do: cmake' cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D PYTHON_EXECUTABLE=${PYTHON_DIR}/bin/python3 \ -D PYTHON_LIBRARY=${PYTHON_DIR}/lib/libpython3.4m.dylib \ -D PYTHON_INCLUDE_DIR=${PYTHON_DIR}/include/python3.4m \ -D PYTHON_NUMPY_INCLUDE_DIRS=${PYTHON_DIR}/lib/python3.4/site-packages/numpy/core/include/numpy \ -D PYTHON_PACKAGES_PATH=${PYTHON_DIR}lib/python3.4/site-packages \ -D OPENCV_EXTRA_MODULES_PATH=opencv_contrib/modules \ -D BUILD_opencv_legacy=OFF \ ${OPENCV_DIR} echo '**Going to do: make' make -j${NUM_THREADS} echo '**Going to do: make install' sudo make install echo '**Add the following to your .bashrc: export PYTHONPATH=${PYTHONPATH}:${OPENCV_DIR}/lib' export PYTHONPATH=${PYTHONPATH}:${OPENCV_DIR}/lib echo '**Testing if it worked' python3 -c 'import cv2' echo 'opencv properly installed with python3 bindings!' # The script will exit if the above failed.
провел 3 часа, пробуя различные варианты на Ubuntu 14.04 LTS, упомянутые здесь и в другом ссылочном учебник безрезультатно. Некоторое время пробовал с OpenCV3.0.0, но в итоге переключился на 3.1.0. Сработало следующее:
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.4m.so \ -D PYTHON3_EXECUTABLE=/usr/bin/python3.4m \ -D PYTHON3_INCLUDE_DIR=/usr/include/python3.4m/ \ -D PYTHON_INCLUDE_DIR=/usr/include/python3.4m/ \ -D PYTHON3_INCLUDE_DIRS=/usr/include/python3.4m/ \ -D PYTHON_INCLUDE_DIRS=/usr/include/python3.4m/ \ -D BUILD_opencv_python3=ON \ .
выход:
-- OpenCV modules: -- To be built: core flann imgproc ml photo video imgcodecs shape videoio highgui objdetect superres ts features2d calib3d stitching videostab python3 -- Disabled: java world -- Disabled by dependency: - -- Unavailable: cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev python2 viz -- Python 3: -- Interpreter: /usr/bin/python3.4m (ver 3.4.3) -- Libraries: /usr/lib/x86_64-linux-gnu/libpython3.4m.so (ver 3.4.3) -- numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.8.2) -- packages path: /usr/lib/python3/dist-packages -- -- Python (for build):
и с virtualenv используются следующие параметры cmake:
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=$VIRTUAL_ENV \ -D PYTHON3_EXECUTABLE=$VIRTUAL_ENV/bin/python3 \ -D PYTHON3_PACKAGES_PATH=$VIRTUAL_ENV/lib/python3.4/site-packages \ -D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.4m.so \ -D PYTHON3_INCLUDE_DIR=$VIRTUAL_ENV/include/python3.4m \ -D PYTHON_INCLUDE_DIR=$VIRTUAL_ENV/include/python3.4m \ -D PYTHON3_INCLUDE_DIRS=$VIRTUAL_ENV/include/python3.4m \ -D PYTHON_INCLUDE_DIRS=$VIRTUAL_ENV/include/python3.4m \ -D BUILD_opencv_python3=ON \ .
если у вас есть проблемы с ffmpeg включает в себя добавить следующее, Чтобы удалить поддержку видео:
-D WITH_FFMPEG=OFF \ -D WITH_GSTREAMER=OFF \ -D WITH_V4L=OFF \ -D WITH_1394=OFF \
также обратите внимание на предупреждение от cmake об использовании
make clean
. Если вы запустили make clean, вам, возможно, придется заново распаковать исходный пакет. Cmake мертв, да здравствует Cmake
полная инструкция, касающаяся ответа Джеймса Флетчера, может быть найдена здесь
в частности, для распространения Anaconda мне пришлось изменить его следующим образом:
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D PYTHON3_PACKAGES_PATH=/anaconda/lib/python3.4/site-packages/ \ -D PYTHON3_LIBRARY=/anaconda/lib/libpython3.4m.dylib \ -D PYTHON3_INCLUDE_DIR=/anaconda/include/python3.4m \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D BUILD_EXAMPLES=ON \ -D BUILD_opencv_python3=ON \ -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..
последняя строка может быть опущен (см. ссылку выше)
если ты здесь... Мне жаль, что другие варианты не тренировались. Попробуйте это:
conda install -c menpo opencv3
от шага 1 из учебник Scivision. Если это не сработает, перейдите к Шагу 2:
(только для Windows) OpenCV 3.2 pip install
Скачать OpenCV .файл колесо здесь. Пакеты, которые упоминают
contrib
в их названии включают OpenCV-дополнительные пакеты. Например, предполагая, что у вас есть Python 3.6, вы возможно скачатьopencv_python-3.2.0+contrib-cp36-none-win_amd64.whl
чтобы получить пакеты OpenCV-extra.затем из командной строки:
pip install opencv_python-3...yourVersion...win_amd64.whl
отметим, что
...win_amd64.whl
пакеты колес из шага 2 в этом учебнике предназначены для чипов AMD.
кто-то опубликовал контейнер / файл docker для этого:
https://github.com/vipul-sharma20/docker-opencv3-python3
https://hub.docker.com/r/vipul20/docker-opencv3-python3/~/dockerfile/
вы можете вытащить образ непосредственно из Docker hub или следуйте инструкциям в файле docker для установки.
независимо от того, устанавливаете ли вы opencv3 вручную или из пакета whl Gohlke, я обнаружил необходимость создания / редактирования файла cv.py в site_packages следующим образом, чтобы сделать совместимым со старым кодом:
import cv2 as cv
вы можете использовать следующую команду в командной строке ( cmd) на Windows:
py -3.3 -m pip install opencv-python
Я видео о том, как установить OpenCV Python на Windows в 1 минута здесь:
https://www.youtube.com/watch?v=m2-8SHk-1SM
надеюсь, что это помогает!