你可能沒有成功安裝opencv環境,或者你須要從新安裝opencv的環境進行嘗試html
你能夠查看這一篇博客進行配置opencv卸載與安裝python
你可能查看了某些博客,要求你將cv2.so移動到你的使用的python中( sudo cp /usr/local/lib/python2.7/dist-packages/cv2/cv2.so /home/username/anaconda3/lib/python3.6/dist-packages/),而後你再次import cv2
就會發現會出現以上的報錯linux
你能夠經過which python
命令查看你的python的來源。例如你經過which python
獲得的結果是/home/learner/anaconda3/bin/python
docker
那麼說明你須要的opencv文件應該放在anaconda3/lib/python3.6(你的對應的版本)/dist-packages/中shell
解決方法:bash
若是你確實已經按照以上的博客進行安裝好opencv了,那麼你能夠繼續進行,不然,請先按照以上博客進行opencv的安裝。python2.7
根據提示,缺乏的是libz-a147dcb0.so.1.2.3這個文件,那麼咱們進行查找經過sudo find / -name libz-a147dcb0.so.1.2.3
3d
獲得結果以下:code
find: ‘/run/user/1000/gvfs’: Permission denied /var/lib/docker/overlay2/f72d8ff7ad2486a45a06a7bccdebe2628377a839c7f943d7e2b06f44a825be87/diff/usr/local/lib/python3.6/dist-packages/PIL/.libs/libz-a147dcb0.so.1.2.3 /var/lib/docker/overlay2/f72d8ff7ad2486a45a06a7bccdebe2628377a839c7f943d7e2b06f44a825be87/diff/usr/local/lib/python3.6/dist-packages/h5py/.libs/libz-a147dcb0.so.1.2.3 /var/lib/docker/overlay2/f72d8ff7ad2486a45a06a7bccdebe2628377a839c7f943d7e2b06f44a825be87/diff/usr/local/lib/python3.6/dist-packages/matplotlib/.libs/libz-a147dcb0.so.1.2.3 /home/learner/.conda/envs/tensorflow/lib/python3.6/site-packages/PIL/.libs/libz-a147dcb0.so.1.2.3 /home/learner/.conda/envs/tensorflow/lib/python3.6/site-packages/h5py/.libs/libz-a147dcb0.so.1.2.3 /home/learner/.conda/envs/tensorflow/lib/python3.6/site-packages/matplotlib/.libs/libz-a147dcb0.so.1.2.3 /home/learner/.conda/envs/tensorflow/lib/python3.6/site-packages/cv2/.libs/libz-a147dcb0.so.1.2.3 /home/learner/.conda/envs/tf/lib/python3.6/site-packages/PIL/.libs/libz-a147dcb0.so.1.2.3 /home/learner/.conda/envs/tf/lib/python3.6/site-packages/h5py/.libs/libz-a147dcb0.so.1.2.3 /home/learner/.conda/envs/tf/lib/python3.6/site-packages/matplotlib/.libs/libz-a147dcb0.so.1.2.3 /home/learner/.conda/envs/tf/lib/python3.6/site-packages/cv2/.libs/libz-a147dcb0.so.1.2.3 /usr/local/lib/python3.5/dist-packages/cv2/.libs/libz-a147dcb0.so.1.2.3 /usr/local/lib/python3.5/dist-packages/matplotlib/.libs/libz-a147dcb0.so.1.2.3 /usr/local/lib/python2.7/dist-packages/h5py/.libs/libz-a147dcb0.so.1.2.3 /usr/local/lib/python2.7/dist-packages/cv2/.libs/libz-a147dcb0.so.1.2.3 /usr/local/lib/python2.7/dist-packages/matplotlib/.libs/libz-a147dcb0.so.1.2.3
咱們能夠觀察到有不少cv2的文件夾,而咱們python所使用的anaconda3/lib/python3.6/site-packages中沒有這個文件,那麼將cv2.so文件複製過去orm
cp /usr/local/lib/python2.7/dist-packages/cv2.so /anaconda3/lib/python3.6/site-packages
在此處還不夠,須要加上如下聲明,能夠添加到.bashrc中
export PYTHONPATH=/home/learner/anaconda3/lib/python3.6/site-packages/:$PYTHONPATH
Python 3.6.3 |Anaconda, Inc.| (default, Oct 13 2017, 12:02:49) [GCC 7.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 >>>
這個方法是我誤打誤撞獲得的,若是有更好的方法,但願你們能夠給我留言,我會繼續改進的