前言
之前自己在树莓派上编译安装过,但是步骤过于复杂,而且树莓派性能太差,编译时间较长,所以记录一下不用编译的安装方法,简单方便,五分钟搞定。
安装
话不多说,直接上命令
sudo apt update
sudo apt-get update
sudo apt-get install libjpeg-dev libatlas-base-dev libjpeg-dev libtiff5-dev libpng12-dev libqtgui4 libqt4-test libjasper-dev
sudo pip3 install opencv-python
另外如果你需要用pyqt的话,安装pyqt,需要录音,安装pyaudio
sudo apt-get install python3-pyqt5
sudo pip3 install PyQtChart
sudo apt-get install portaudio19-dev
pip3 install pyaudio
附加
sudo apt-get install libhdf5-dev libhdf5-serial-dev
sudo pip3 install opencv-contrib-python
还有一些常用库,传感器驱动等,一般可以去github找。
pip3 install paho-mqtt
pip3 install Adafruit_DHT
问题
你以为这几条命令就完了?大错特错。你很大概率会遇到以下几个问题:
- 第三条命令报错:
Collecting opencv-python
Downloading https://www.piwheels.org/simple/opencv-python/opencv_python-3.4.4.19-cp35-cp35m-linux_armv7l.whl (7.4MB)
45% |██████████████▍ | 3.3MB 15kB/s eta 0:04:20
THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
opencv-python from https://www.piwheels.org/simple/opencv-python/opencv_python-3.4.4.19-cp35-cp35m-linux_armv7l.whl#sha256=329d9d9fdd62b93d44a485aeaab4602c6f5b8555ea8bcc7dbcdc62c90cfe2c3f:
Expected sha256 329d9d9fdd62b93d44a485aeaab4602c6f5b8555ea8bcc7dbcdc62c90cfe2c3f
Got 869c7994c40b84ac09f244f768db9269d52d3265d376441e8516a47f24711ef2
根据我的经验这和自己的网络环境有关,我用手机开热点秒下载完,但是用家里的宽带就不行。直接下载轮子安装也可以:
下载地址
下载完成后,用以下命令安装:
sudo pip3 install opencv_python-3.4.4.19-cp35-cp35m-linux_armv7l.whl
- 导入cv2报错:
pi@raspberrypi:~ $ python3
Python 3.7.3 (default, Apr 3 2019, 05:39:12)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/pi/cv2/__init__.py", line 3, in <module>
from .cv2 import *
ImportError: /home/pi/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __atomic_fetch_add_8
这是个bug,github上面有官方的issue,解决办法如下:
将下面这行代码添加到/etc/bashrc 或者 /etc/profile文件里面。
export LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1
我加到了.bashrc
文件里,最后记得source .bashrc
生效。安装完成!