首頁 > 軟體

Python虛擬環境(pyvenv、virtualenv)

2020-06-16 17:16:57

我們為什麼需要使用虛擬環境?

Python的包(或模組)的下載儲存非常獨特;有時候可能會帶來問題。

不同系統,Python模組的安裝位置也不一樣。例如,大多數系統模組安裝在 sys.prefix 環境變數指定的目錄中,以Mac OS X為例:

使用pip或easy_install安裝的第三方模組通常安裝在 site packages 目錄:

下面舉一個實際的例子來說明使用虛擬環境的好處。

假設你有兩個Python專案-A和B,這兩個專案都需要使用同一個第三方模組-tensorflow。如果這兩個專案使用相同的tensorflow版本,也許不會有什麼問題。

但是,當A和B專案使用不同的tensorflow版本時-A使用tensorflow 0.70版本;B使用tensorflow 0.80版本。由於Python匯入模組不能區分模組版本,導致A、B不能使用tensorflow的不同版本,這在很多情況下是不能接受的。

使用虛擬環境的另一個好處是:保持開發環境的簡潔、有序。

什麼是Python虛擬環境?

Python虛擬環境可以為專案建立相互獨立的開發環境,也就是你可以為每個專案安裝各自使用依賴模組。

使用虛擬環境可以很好的解決上面A、B專案遇到的問題:為A、B專案分別建立虛擬環境,然後在各自的虛擬環境中安裝不同的tensorflow版本。

使用虛擬環境需要借助virtualenv或pyvenv,它們的使用非常簡單。

安裝virtualenv、pyvenv

如果你使用Python 2,你可以使用pip安裝virtualenv:

如果你使用Python 3,它預設安裝了pyvenv。

virtualenv和pyvenv的使用方法類似。由於pyvenv是較新的工具,本帖以它為例。

建立一個存放虛擬環境的目錄:

建立一個虛擬環境:

上面命令在當前目錄建立了env_A目錄,目錄結構:

使用建立的虛擬環境env_A:

提示符中包含:

現在你通過pip安裝的包都會安裝這個虛擬環境中;匯入(import)模組時也只能使用這個虛擬環境中的模組。

如果要退出env_A虛擬環境,執行:

虛擬環境的工作原理

主要就是操作環境變數。

Python在非虛擬環境下的路徑:

啟用虛擬環境再次檢視Python路徑:

$PATH 環境變數在啟用前後不一樣了:

你可以看看 sys.prefix 和其他Python系統環境變數。

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-04/143114.htm


IT145.com E-mail:sddin#qq.com