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時又需要把註釋#去掉。
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時,問題得以解決,不再報錯,但此方法並不一定可以保證在所有的情況下都適用,但還是值得一試滴。