1. 程式人生 > 其它 >ubuntu16.04安裝python虛擬環境和opencv(供系統使用)

ubuntu16.04安裝python虛擬環境和opencv(供系統使用)

技術標籤:linux

前提:ubuntu16下已經安裝了ros,ubuntu 16.04自帶python2.7和python3.5

一 ubuntu安裝python虛擬環境

參考Ubuntu16.04 下 Python3 虛擬環境安裝 OpenCV

(1)首先安裝 Python 的包管理工具 pip。安裝 Python3 的 pip

$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python3 get-pip.py

(2)然後安裝模組,這裡用python2.7也可以

sudo pip install virtualenv virtualenvwrapper

(3)切換到你需要建立虛擬環境的目錄,執行(建立python3的虛擬環境)

virtualenv -p /usr/bin/python3.5 my_env

(4)在該目錄下執行,開啟虛擬環境

source my_env/bin/activate

(5)在該虛擬環境下執行其他操作

二 在虛擬環境下安裝python opencv

(1)在pip中可以方便快速的安裝opencv-python和opencv-contrib-python,只需要輸入兩條指令即可:

pip3 install opencv-python #安裝opencv
pip3 install opencv-contrib-python #安裝opencv的contrib擴充套件包

如果中途沒報錯,恭喜安裝成功了。

(2)當引入 import cv2會報如下錯誤,是因為安裝ros的時候將配置環境默認了

解決方法:參考https://blog.csdn.net/weixin_39312052/article/details/97006800

原因分析:ROS安裝之後的~/.bashrc檔案中多出一句:

source /opt/ros/kinetic/setup.bash

處理方法:建議採用第二種

(1)第一種方法
需要在~/.bashrc檔案中增加一行命令,操作步驟為:

sudo gedit ~/.bashrc

部分處理方法是在.bashrc檔案中把source /opt/ros/kinetic/setup.bash新增#符號註釋掉,但這樣勢必會造成再次使用ROS時又需要把註釋#去掉。

因此查詢相關的材料可以在開啟的.bashrc檔案中的最後增加如下一行:

export PYTHONPATH="/home/li/anaconda2/lib/python3.5/site-packages:$PYTHONPATH"

注意:上面的路徑中的userx需要換成你自己的使用者名稱

PYTHONPATH後的/home/userx/anaconda3路徑內容需要根據自己的anaconda安裝路徑來來進行更改,大多數預設的安裝。目錄都是以上這種情況,只需要更改/userx就行。但是最後得出的結果可能會和之前提到的那種方法產生一樣,即執行ROS時需要註釋掉這行程式碼,執行非ROS時需要加上這行程式碼。而接下來的第二種方法會在python檔案中進行處理。

(2)第二種方法

因為是受ROS安裝的影響,ROS安裝之後會在python pyth中加入:

'/opt/ros/kinetic/lib/python2.7/dist-packages'

而為了解決此問題,可以在需要執行的python檔案(即使用import cv2的python檔案)中,新增以下程式碼:

import sys
sys.path.remove('/opt/ros/kinetic/lib/python2.7/dist-packages')

注意:一定要保證解決辦法那兩句程式碼 import sys sys.path.remove(’/opt/ros/kinetic/lib/python2.7/dist-packages’) 在import cv2之前。這樣才能成功
通過這兩行程式碼可以把ROS寫入path中的路徑給清除,進行可以import anaconda中的cv2包。

注:通過此方法再次import cv2時,問題得以解決,不再報錯,但此方法並不一定可以保證在所有的情況下都適用,但還是值得一試滴。