一、虛擬環境概述
Python應用程序通常會使用不在標准庫內的軟件包和模塊。應用程序有時需要特定版本的庫,修復特定的錯誤,或者可以使用庫的過時版本的接口編寫應用程序。
這說明一個Python安裝可能無法滿足每個應用程序的要求。例如:應用程序A需要特定模塊的1.0版本但應用程序B需要2.0版本,則需求存在沖突,安裝版本1.0或2.0將導致某一個應用程序無法運行。
這個問題的解決方案是創建一個虛擬環境,一個目錄樹,其中安裝有特定Python版本,以及其他包。
不同的應用將可以使用不同的虛擬環境。就可以解決需求相沖突的例子。
二、創建激活虛擬環境
用於創建和管理虛擬環境的模塊稱為venv。venv通常會安裝你可用的最新版本的 Python。若系統上有多個版本的Python,可以通過運行 python3 或您想要的任何版本來指定Python版本。
1、創建虛擬環境
如項目名叫tutorial,創建對應的文件夾然后切換到根目錄:cd tutorial。
如果使用venv,使用命令:$ python -m venv tutorial-env
其中tutorial-env是虛擬環境的名字,也作為創建的虛擬環境文件夾名稱,可以自由修改。如果tutorial-env目錄不存在,它將為你創建一個,並在其中創建包含Python解釋器,標准庫和各種支持文件的副本的目錄。
注意:需要tutorial-env的虛擬環境文件夾名稱加入 .gitignore文件以便讓Git忽略。
虛擬環境的常用目錄位置是 .venv。這個名稱通常會令該目錄在你的終端中保持隱藏,從而避免需要對所在目錄進行額外解釋的一般名稱。它還能防止與某些工具所支持的 .env 環境變量定義文件發生沖突。
如果使用virtualenv,則使用下面的命令:$ virtualenv snow-venv
2、激活虛擬環境
通過執行對應的激活腳本來激活虛擬環境,不同操作系統的激活命令(激活腳本及路徑)有一點不同。
Windows(CMD.exe):$ tutorial-env\Scripts\activate.bat
Linux和macOS(bash/zsh):$ source tutorial-env/bin/activate
activate.bat這個腳本是為bash shell編寫的。如果你使用csh或fish shell,你應該改用activate.csh 或activate.fish腳本。
激活虛擬環境以后,命令行提示符前會顯示當前虛擬環境的名字,並修改環境以使python命令所運行的將是已安裝的特定Python版本。
退出虛擬環境:deactivate
三、venv模塊和virtualenv工具
virtualenv:Python虛擬環境管理工具。
venv:Python標准庫內置的虛擬環境管理工具,Python 3.3加入,Python 3.5開始作為管理虛擬環境的推薦工具,用法類似virtualenv,唯一不同的是創建虛擬環境的方式。
Python 2.x時,創建虛擬環境需要安裝第三方的virtualenv,但Python 3.3之后,標准庫里內置了venv模塊,可以用來創建虛擬環境。
如果你使用Python 3.3及以上版本,推薦使用標准庫內置的venv 模塊替代virtualenv。
如果你使用Python 2,就只能選擇virtualenv,你需要額外安裝它。pip install virtualenv