接下來的專案會需要用到虛擬環境,本篇主要說明環境如何建置以及最最最基本的操作方式。
需要物品
已經設定好的樹莓派。
安裝套件
使用以下指令安裝兩個會用到的套件,並檢查是否有安裝成功:$ sudo python3 -m pip install virtualenv
$ sudo python3 -m pip install virtualenvwrapper
(順便偷提一下: virtualenvwrapper-win
套件是用於 Windows 的。)
$ python3 -m pip list
輸入完成以上命令後,可檢查是否有在列表內,若有成功安裝應該是能夠找得到的:
然後在終端中運行以下命令,以重新載入啟動文件:
$ sudo nano ~/.bashrc
並輸入以下內容:
export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source /usr/local/bin/virtualenvwrapper.sh
關於 nano 這個文字編輯器的相關使用方式可以自行搜尋,在這裡主要是拉到檔案最下面並新增上方文字,接著操作 ctrl + O
並 Enter 複寫後儲存檔案,並 ctrl + X
離開檔案。
接著使用下方指令重新載入更新的文件:
source ~/.bashrc
建立虛擬環境
已經裝好套件候,可以建置名字叫做 env1 的虛擬環境並啟動了(可以取任何你想要的名字):
mkvirtualenv env1 -p python3
可以看到目前已經進入名叫 env1 的虛擬環境(前方會有括號虛擬環境的名字)。
要離開的話,使用 deactivate
指令: (env1) pi@raspberrypi:~ $ deactivate
若想要檢查目前已經建置的環境,使用 lsvirtualenv
:(env1) pi@raspberrypi:~ $ lsvirtualenv
在 /home/pi/.virtualenvs
的目錄下,也是可以看得見該環境的資料夾。
使用虛擬環境
接著我們就要在虛擬環境底下做事了。$ workon env1
成功啟動之後,我們要看看目前這個環境中的套件清單:(env1) pi@raspberrypi:~ $ pip list
噢,還真是乾淨整潔。我們可以在這個環境中安裝任何我們想要的套件,並且不會影響到其他環境。
刪除虛擬環境
可以建置,當然也可以移除。若還在虛擬環境內,記得要先退出再操作。
知道要移除的環境名稱後,使用 rmvirtualenv env1
指令:$ rmvirtualenv env1
為什麼要建立虛擬環境?
我記得之前在打包程式的時候,完全不知道虛擬環境這種東西,結果打包出來的程式大得嚇人。後來才知道,其實每個專案使用的套件、版本都不一樣,本來就需要根據不同的需求去安裝函式庫。像我一樣通通都安裝在同一個環境,甚至連打包都沒有另外建置環境,真的很可怕。
既然每個專案的需求都不同,那我們就針對每個專案去設計環境,這樣就不會讓我們的開發環境變得亂七八糟,管理上也較為容易。
這是蠻重要的概念,但印象中之前的開發相關課程都沒有先建立這個觀念,我覺得非常不妥。
文章圖片皆是 Alex’s Spot 本站之機器以及親自操作之畫面截圖。