Установка Python 3.4 и OpenCV 3.0 на Raspbian


Решил освоить raspberry, при этом не использовать компилируемые языки, выбор невольно остановился на Python 3.
Поскольку изначально планировалось задействовать OpenCV, то на текущий момент это возможно только с OpenCV 3.0 beta которая рекомендует использовать с ней Python 3.4.
Ни того ни другого в репозитории нет и пришлось собирать из исходников, по пути осваивая данный процесс. Идущим по моим следам посвящается:

Установка Python 3.4

Устанавливаем пакеты необходимые для Python:

sudo apt-get install zlib1g-dev  libbz2-dev libncurses5-dev libreadline6-dev libsqlite3-dev libssl-dev libgdbm-dev liblzma-dev tk-dev

Качаем и распаковываем исходники:

wget https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tgz
tar -zxvf ./Python-3.4.2.tgz
cd ./Python-3.4.2/

Более свежие исходники можно взять с оф.сайта

Готовим к компиляции

./configure --prefix=/usr/local

Компилируем

make

Ближе к концу компиляции может появится сообщение о том что каких-то пакетов не хватает: «the necessary bits to build these modules were not found:» их можно до установить если они вам нужны, после чего повторить процедуру.

Cобираем пакет

sudo make install

По правильному надо собирать при помощи checkinstall, но не получилось как ни старался.

setup_tools и pip ставятся автоматически

Создаем удобные симлинки в системе:

rm /usr/bin/python3
ln -s /usr/local/bin/python3 /usr/bin/
ln -s /usr/local/bin/pip3 /usr/bin/

OpenCV необходим питоновский модуль numpy — ставим

pip3 install numpy

Устанавливаем необходимые OpenCV пакеты (поставил все что просил)

sudo apt-get install cmake git build-essential pkg-config libpng12-0 libpng12-dev libpng++-dev libpng3 libpnglite-dev \
zlib1g-dbg zlib1g zlib1g-dev pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools libeigen3-dev libjpeg8 \
libjpeg8-dev libjpeg8-dbg libjpeg-progs ffmpeg libavcodec-dev libavcodec53 libavformat53 libavformat-dev \
libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libxine1-ffmpeg libxine-dev libxine1-bin \
libunicap2 libunicap2-dev swig libv4l-0 libv4l-dev python-numpy libpython2.7 python-dev python2.7-dev libgtk2.0-dev

Скачиваем исходники
wget https://github.com/Itseez/opencv/archive/3.0.0-beta.zip
unzip 3.0.0-beta.zip
cd opencv-3.0.0-beta

Собираем (поскольку на raspbian несколько питонов, необходимо указать какой из них где)

sudo cmake   \
	-D CMAKE_BUILD_TYPE=RELEASE \
	-D CMAKE_INSTALL_PREFIX=/usr/local/ \
        -D PYTHON2_EXECUTABLE=/usr/bin/python2 \
        -D PYTHON2_INCLUDE_PATH=/usr/include/python2.7/ \
	-D PYTHON2_LIBRARIES=/usr/lib/python2.7  \
	-D PYTHON2_PACKAGES_PATH=/usr/local/lib/python2.7/site-packages/ \
	-D PYTHON2_NUMPY_INCLUDE_DIRS=/usr/local/lib/python2.7/dist-packages/numpy/core/include \
        -D PYTHON3_EXECUTABLE=/usr/local/bin/python3 \
	-D PYTHON3_INCLUDE_PATH=/usr/local/include/python3.4m/ \
	-D PYTHON3_LIBRARIES=/usr/local/lib/python3.4/ \
	-D PYTHON3_PACKAGES_PATH=/usr/local/lib/python3.4/site-packages/ \
	-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/lib/python3.4/dist-packages/numpy/core/include/ .
sudo make
sudo make install

сборка на raspberry занимает порядка 10-12 часов
checkinstall как и в случае с питоном работать отказался

Чтобы Raspberry Camera стала стандартным V4L устройством /dev/video0, нужно выполнить:

sudo modprobe bcm2835-v4l2

Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна конкурс манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение