使用 pip 在 Ubuntu舱污,macOS 上快速安裝 OpenCV剿涮。
Ubuntu 版本:Ubuntu 20.04.2 LTS憎瘸;
macOS 版本:macOS Big Sur 11.4。
對于 Python 應(yīng)用而言叠荠,可以使用 pip
安裝軟件包[1]胸梆,本文就以 Ubuntu 和 macOS 為例敦捧,展示安裝 OpenCV 的過程。
需要首先說明的是碰镜,用 pip
安裝的 OpenCV 包不影響日常使用兢卵,但并不是 OpenCV.org 官方發(fā)布的。
1. pip 的兩種 OpenCV 安裝包
在 PyPI 倉庫中绪颖,共有 4 種 OpenCV 包可用于 pip
安裝秽荤,安裝時僅能選擇其中一個。
對于桌面環(huán)境(如 Windows柠横,macOS 和 Linux 系統(tǒng))窃款,可以使用下面兩個版本:
- opencv-python:這個版本僅包括了 OpenCV 的主模塊;
- opencv-contrib-python:這個版本包括了 OpenCV 的主模塊和發(fā)布版/附加模塊牍氛;
對于服務(wù)器/非 GUI 環(huán)境晨继,可以使用下面兩個 Headless 版本,不包括任何 GUI 功能搬俊,不能直接使用 cv2.imshow
等函數(shù):
- opencv-python-headless:這個版本僅包括了 OpenCV 的 headless 主模塊紊扬;
- opencv-contrib-python-headless:這個版本包括了 OpenCV 的 headless 主模塊和發(fā)布版/附加模塊蜒茄;
再次強(qiáng)調(diào),不要同時安裝多個版本餐屎,只可以安裝其中一個版本檀葛。
2. 在 Ubuntu 上使用 pip 安裝 OpenCV
2.1 安裝 pip
對于 Ubuntu 的發(fā)行版而言,一般預(yù)裝了 Python 2 和 Python 3啤挎,兩個版本可謂天差萬別驻谆。
而兩個版本的 Python 都包括了不同的 pip
。一般使用 pip
時默認(rèn)指 Python 2庆聘,pip3
則指 Python 3 中的 pip胜臊。
可以通過如下命令檢查 Python 的版本:
python3 --version
比如我的電腦顯示為:
Python 3.8.5
表示 Ubuntu 中安裝了 3.8.5 版本的 Python。
我們現(xiàn)在一般使用的是 Python 3伙判,因此使用以下命令安裝 pip3
:
sudo apt install python3-pip
在按要求輸入賬戶密碼后象对,將安裝 pip3
和它的依賴項(xiàng)。
注意: 我在輸入上述命令后宴抚,產(chǎn)生了
Waiting for cache lock: Could not get lock...
的錯誤勒魔,排除錯誤可參考本文。
安裝完成后菇曲,輸入以下命令來檢查安裝是否正確:
pip3 --version
結(jié)果將顯示 pip3
的版本號:
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
類似顯示意味著已成功安裝 pip3
冠绢。
2.2 安裝 OpenCV
對于 Python 而言,可以構(gòu)建一個虛擬環(huán)境(Virtual Environment)常潮,并在虛擬環(huán)境中安裝不同的軟件包弟胀。
我們這里不使用虛擬環(huán)境,直接將 opencv-contrib-python
安裝到系統(tǒng)中(在下面的 macOS 中再演示虛擬環(huán)境安裝):
sudo pip install opencv-contrib-python
經(jīng)過一段時間后喊式,顯示安裝了 opencv-contrib-python
及其他依賴包(如 numpy
):
默認(rèn)情況下
pip
使用的是國外鏡像孵户,國內(nèi)的同學(xué)可能下載速度過慢,此時可以考慮將pip
使用的源修改為國內(nèi)的鏡像源岔留。
3. 在 macOS 上使用 pip 安裝 OpenCV
由于 macOS 上自帶的是 Python 2夏哭,需要自行安裝 Python 3。同時献联,部分同學(xué) (包括我J洹!)=可能安裝過 Anaconda 或者 Pycharm 等軟件里逆,使得 macOS 下 Python 的版本管理混亂进胯。我后面會專門寫一篇文章介紹躲開這些坑的方法。
這里介紹使用 pip 將 OpenCV 安裝到虛擬環(huán)境下的過程(重點(diǎn)是 macOS 上虛擬環(huán)境的配置)运悲。
3.1 安裝虛擬環(huán)境所需軟件
安裝 virtualenv
和 virtualenvwrapper
到電腦中[2]:
pip3 install virtualenv virtualenvwrapper
之后龄减,需要在系統(tǒng)配置文件 ~/.bash_profile
中添加配置內(nèi)容项钮。使用 vim
(或 nano
等應(yīng)用)打開該文件:
vim ~/.bash_profile
將下列內(nèi)容添加到文件末尾:
# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
保存文件后班眯,在終端中運(yùn)行下面命令:
source ~/.bash_profile
注意: 由于我之前亂七八糟安裝/卸載過多次相關(guān)軟件包希停,使得出現(xiàn)了
/Users/XXX/.bash_profile:source:11: no such file or directory: /usr/local/bin/virtualenvwrapper.sh
的錯誤,此時需要通過在終端中運(yùn)行which virtualenvwrapper.sh
的命令署隘,確定其地址并對添加內(nèi)容的第二行進(jìn)行修改宠能。
3.2 配置所需虛擬環(huán)境
virtualenvwrapper
提供了一些常見的命令,可以用于配置虛擬環(huán)境磁餐。
-
mkvirtualenv
:創(chuàng)建一個新的虛擬環(huán)境违崇; -
workon
:激活/轉(zhuǎn)換到一個虛擬環(huán)境中; -
deactivate
:退出虛擬環(huán)境诊霹,回到自己的系統(tǒng)中羞延; -
rmvirtualenv
:刪除虛擬環(huán)境。
我們這里創(chuàng)建一個名為 cv_test
的 Python3 的虛擬環(huán)境:
mkvirtualenv cv_test -p python3
可以看到脾还,此時命令行的最前面增加了一個括號伴箩,顯示為(cv_test)
,表示此時已在此虛擬環(huán)境下工作了鄙漏。
3.3 安裝 OpenCV 到虛擬環(huán)境中
下面將 opencv-contrib-python
安裝到系統(tǒng)中:
pip3 install opencv-contrib-python
靜候片刻嗤谚,即完成了 OpenCV 的安裝。
4. 測試安裝結(jié)果
無論 Ubuntu 還是 macOS怔蚌,安裝完成后巩步,可以測試是否安裝成功。
以 macOS 為例桦踊,首先進(jìn)入對應(yīng)的虛擬環(huán)境中:
workon cv_test
然后在終端中運(yùn)行 python3
椅野,進(jìn)入 Python 3 的交互環(huán)境,通過導(dǎo)入 OpenCV 包钞钙,即可顯示版本:
% python3
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.5.2'
說明我們使用 pip
安裝成功了 OpenCV鳄橘,可供后續(xù)使用。