各位是否在創建專案前對於選擇存取套件環境會不知如何下手以及不熟悉 Virtualenv的情形而使得安裝套件時無法順利進行呢?這邊為各位進行環境解說。
Virtualenv是一種虛擬環境,專門用來針對不同專案提供各專屬的環境包使用,系統環境與套件將會是獨立的,與原生安裝環境的Python與pip套件庫互不影響,所以如果針對特定的專案建立都會建議使用Virtualenv來建立環境,可以看到底下Location 項目在專案中指定存放虛擬環境的名稱為venv(此名稱是可變的,但不建議更改),Base intrtpreter 項目則是為了選擇對應的Python版本。( 附圖一 )

使用Virtualenv模式創建環境 (附圖一)
創建完成後可以看到專案目前結構上有個venv的目錄,可以發現bin中存放Python環境包相關檔案,lib>Python {版本號} >site-packages 底下則是存放已安裝套件,可以套到當前除了目錄中pip、setuptools、wheel基礎Python套件外就無其他套件。 (附圖二)

使用Virtualenv模式創建環境(附圖二)
若依照課堂使用到原生Python 下環境會如何呢?
可以看到以下示範,課堂上老師選用的模式Previously configured interpreter 的方式直接指定環境與套件庫,可以發現本地套件全都會被載入到環境包中,即之後所安裝的套件也都會被安裝於系統原生環境中,所以在建置時要特別注意規劃好使用需求後再創建專案。
(附圖三) (附圖四)

Previously configured interpreter模式創建專案 (附圖三)

Previously configured interpreter模式下套件(附圖四)
專案建立規劃方向:
一、當前Python 編寫僅作為測試環境不需要專屬套件庫時則使用原生Python與pip環境較為適合,混和套件方便不同的應用中快速調用,無須不斷重複安裝,但壞處是若要遷移、匯出所屬的pip 套件給其他電腦環境使用時會報錯,原因是這會連同系統原生依賴都一併匯出,再其他系統中並不適用,所以還要再手動篩選才適合進行轉移,步驟相當繁瑣耗時。
二、若建立為虛擬環境的專案形式,由於每個專案將會是獨立各自一包venv,所以占用的空間相對也會變多,但好處則是各自專案包皆為專屬套件、環境,當需要轉移專案、匯出專案套件到其他環境去執行時僅要整包轉移後在另一個環境上掛載上所創的venv ( 名稱依照自訂義會有所不同 ) 即可完成轉移。
如何分辨terminal下是否有在venv下?
下圖為未進入venv狀態下,一般未使用Virtualenv時會是以主機名稱無附帶其他標註顯示
(附圖五)

未使用Virtualenv狀態之terminal顯示 (附圖五) 若使用Virtualenv則會如下圖例所示,主機最前方會顯示(venv)字樣 (附圖六)

使用Virtualenv狀態之terminal顯示 (附圖六)
特別注意:
venv環境中ternimal輸入pip指令僅需輸入pip即可 (附圖七),非虛擬環境下需要使用pip3指
(附圖八)令。

虛擬環境終端使用pip指令安裝 (附圖七)

非虛擬環境下終端使用pip指令安裝 (附圖八)
※上圖already表示已經有裝過此套件
如何使用Pycharm安裝pip套件?
先點選左上角file>settings (附圖九)

(附圖九)
選到專案project:{專案名稱}>Python Interpreter
先查看是否有正確對應到指定環境,再點選加號進行套件安裝。(附圖十)

(附圖十)
安裝套件請務必詳讀套件官網說明再進行安裝 ( EX:Tensorflow )

更新pip庫指令:
pip3 install --upgrade pip
萬一安裝套件時顯示pip套件庫版本過低時會出現提示,也會有上述指令,請複製貼上進行更新動作後再重新進行安裝套件。
Virtualenv套件安裝 :
若一般使用cmd或terminal下想使用Virtualenv創建虛擬環境並進入使用,可以用以下步驟來安裝與應用。
方法一: sudo apt install virtualenv
方法二: pip3 install virtualenv
終端機下創建虛擬環境指令:
virtualenv {虛擬環境名} --python=python{python版本}
ex創建虛擬環境為 venv對應python3.6版本
virtualenv venv --python=python3.6
終端進入虛擬環境指令:
source venv/bin/activate

退出虛擬環境指令:
deactivate

▲ 此部分需要特別注意 原因是退出虛擬環境使用的就是系統原生套件,如果套件無法對應到就100%會報錯。
Comentarios