opencv python安装linux_Ubuntu16.04、Python3.6下安装opencv4遇到的问题
1.安裝opencv
在網(wǎng)上搜索Ubuntu16.04下安裝opencv4想必一定搜到大把的編譯源碼安裝opencv的教程,其實安裝opencv只需一句命令:
pip3 install opencv-python
說實在我著實沒想明白為什么那么多人要編譯源碼安裝呢。。。
2.python3.6中導入opencv庫
終端敲入python3.6后輸入
import cv2
這時報了個錯:importError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so
原因是我在之前安裝了ROS,ROS默認python版本是2.7,這個問題是由ROS添加/opt/ros/kinetic/lib/python2.7/dist-packages到python路徑引起的
解決辦法:
打開.bashrc文件
gedit ~/.bashrc
在末尾將這句注釋掉
source /opt/ros/kinetic/setup.bash
使該環(huán)境變量在當前終端生效生效
source ~/.bashrc
這樣就可以正確使用python3的opencv包,可以取消注釋source /opt/ros/kinetic/setup.bash來使用ROS。
但是,這確實意味著無法在同一環(huán)境中使用ROS和python3
不過目前ROS1只支持python2,應該在ROS2.0才會支持到python3
導入opencv后查看opencv版本:
print(cv2.__version__)
輸出:4.2.0
3.在Python3.6虛擬環(huán)境中import cv2及遇到的問題
首先在虛擬環(huán)境中導入opencv需要鏈接到opencv的路徑,執(zhí)行命令查找cv2.cpython-36m-x86_64-linux-gnu.so的位置:
sudo find / -name cv2.cpython-36m-x86_64-linux-gnu.so
之后將虛擬環(huán)境中opencv鏈接到上邊文件的路徑比如:
cd .virtualenv/py36env/lib/python3.6/site-packages
sudo ln -s ~/.local/lib/python3.6/site-packages/cv2/cv2.cpython-36m-x86_64-linux-gnu.so cv2.so
或者直接將上邊的文件復制到虛擬環(huán)境下的包路徑(site-packages)也行
在執(zhí)行完以上步驟后進入虛擬環(huán)境啟動python3.6后import cv2遇到以下問題
ModuleNotFoundError: No module named 'cv2'
原因有很多 以下幾種方法可能可以解決:
(1)安裝opencv的contrib庫
pip install opencv-contrib-python
(2)安裝python-opencv
sudo apt-get install python-opencv
(3)將cv2.so復制到系統(tǒng)默認安裝python的路徑下比如
/usr/local/lib/python3.6/dist-packages/cv2/cv2.so
總結
以上是生活随笔為你收集整理的opencv python安装linux_Ubuntu16.04、Python3.6下安装opencv4遇到的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python使用spark sql查询i
- 下一篇: 创建 linux分区命令,Linux中创