Установка 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

Комментарии:

Для написания комментариев необходимо зарегистрироваться