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