VirtualEnv 是什么
VirtualEnv用于在一臺機器上創建多個獨立的python運行環境,VirtualEnvWrapper為前者提供了一些便利的命令行上的封裝。
為什么要用
- 隔離項目之間的第三方包依賴,如A項目依賴django1.2.5,B項目依賴django1.3。
- 為部署應用提供方便,把開發環境的虛擬環境打包到生產環境即可,不需要在服務器上再折騰一翻。
怎么用
安裝
- pip install virtualenvwrapper
- 把下面這句加到~/.bash_profile里面,如不嫌麻煩,也可以每次都手動執行。
source /usr/local/bin/virtualenvwrapper.sh
常用命令
創新的虛擬環境
- mkvirtualenv [env1]
該命令會幫我們創建一個新環境,默認情況下,環境的目錄是.virtualenv/en1,創建過程中它會自動幫我們安裝pip,以后我們要安裝新依賴時可直接使用pip命令。
創建完之后,自動切換到該環境下工作,可看到提示符變為:
(env1)$
在這個環境下安裝的依賴不會影響到其他的環境
- lssitepackages 顯示該環境中所安裝的包
切換環境
- workon [env]
隨時使用“workon 環境名”可以進行環境切換,如果不帶環境名參數,則顯示當前使用的環境
- deactivate
在某個環境中使用,切換到系統的python環境
其他命令
- showvirtualenv [env] 顯示指定環境的詳情。
- rmvirtualenv [env] 移除指定的虛擬環境,移除的前提是當前沒有在該環境中工作。如在該環境工作,先使用deactivate退出。
- cpvirtualenv [source] [dest] 復制一份虛擬環境。
- cdvirtualenv [subdir] 把當前工作目錄設置為所在的環境目錄。
- cdsitepackages [subdir] 把當前工作目錄設置為所在環境的sitepackages路徑。
- add2virtualenv [dir] [dir] 把指定的目錄加入當前使用的環境的path中,這常使用于在多個project里面同時使用一個較大的庫的情況。
- toggleglobalsitepackages -q 控制當前的環境是否使用全局的sitepackages目錄。