Overview

Python 應用程式通常會用到不在標準函式庫的套件和模組。應用程式有時候會需要某個特定版本的函式庫,因為這個應用程式可能需要某個特殊的臭蟲修正,或是這個應用程式是根據該函式庫特定版本的介面所撰寫。

這意味著不太可能安裝一套 Python 就可以滿足所有應用程式的要求。如果應用程式 A 需要一個特定的模組的 1.0 版,但另外一個應用程式 B 需要 2.0 版,那麼這整個需求不管安裝 1.0 或是 2.0 都會衝突,以致於應用程式無法使用。

解決方案是創建一個虛擬環境(virtual environment),這是一個獨立的資料夾,並且裡面裝好了特定版本的 Python,以及一系列相關的套件。

不同的應用程式可以使用不同的虛擬環境。以前述中需要被解決的例子中,應用程式 A 能夠擁有它自己的虛擬環境,並且是裝好 1.0 版,然而應用程式 B 則可以是用另外一個有 2.0 版的虛擬環境。要是應用程式 B 需要某個函式庫被升級到 3.0 版,這並不會影響到應用程式 A 的環境。

虛擬環境 (Virtual Environments)

建立虛擬環境

用來建立與管理虛擬環境的模組叫做 venv。venv 通常會安裝你能夠取得的最新版本的 Python。要是你的系統有不同版本的 Python,你可以透過 python3 這個指令選擇特定或是任意版本的 Python。

在建立虛擬環境的時候,在你決定要放該虛擬環境的資料夾之後,在 script 中執行 venv 模組並且給定資料夾 path:

$ python -m venv venv

如果 venv 不存在的話,會建立 venv 資料夾,並且也會在裡面建立一個有 Python 直譯器的複本、標準函式庫、以及不同的支援檔案的資料夾。

<aside> 💡 venv 是從 python 3.3 開始從標準函式庫 virtualenv 集成到 python 中的函式,這代表 venv 只是提供 virtualenv 內的一部分功能。

</aside>

進入虛擬環境

建立了虛擬環境後,接著啟動虛擬環境 :

# Windows
$ venv\\Scripts\\activate
# Windows Command Prompt
$ venv\\Scripts\\activate.bat
# Windows PowerShell
$ venv\\Scripts\\activate.ps1
# Unix
$ source venv\\bin\\activate

離開虛擬環境

$ deactivate

套件 (Packages)

可以使用一個叫做 pip 的程式來安裝、升級和移除套件。pip 預設會從 Python Package Index https://pypi.org 安裝套件。