動態語言Ruby、Python都有自己的虛擬環境,虛擬環境是程式執行時的獨立執行環境,在同一臺伺服器中可以建立不同的虛擬環境供不同的系統使用,專案之間的執行環境保持獨立性而相互不受影響。例如專案A在基於Python2的環境中執行,而專案B可以在基於Python3的環境中執行。Python通virtualenv工具管理虛擬環境。
安裝 virtualenv
1 |
$ pip install virtualenv |
使用方法
1 2 |
$ cd my_project_folder $ virtualenv venv |
執行完命令後它會在當前目錄下建立資料夾,這個資料夾包含一些Python執行檔案,以及pip副本,用於安裝其他的packges。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
. ├── bin │ ├── activate │ ├── activate.csh │ ├── activate.fish │ ├── activate_this.py │ ├── easy_install │ ├── easy_install-3.5 │ ├── pip │ ├── pip3 │ ├── pip3.5 │ ├── python -> python3 │ ├── python3 │ ├── python3.5 -> python3 │ └── wheel ├── include │ └── python3.5m -> /Library/Frameworks/Python.framework/Versions/3.5/include/python3.5m └── lib └── python3.5 |
此外在建立env的時候可以選擇指定的Python直譯器,例如下面是基於Python3建立的虛擬環境
1 |
$ virtualenv -p /usr/local/bin/python3 venv |
預設情況下,虛擬環境會依賴系統環境中的site packages,就是說系統中已經安裝好的第三方package也會安裝在虛擬環境中,如果不想依賴這些package,那麼可以加上引數 –no-site-packages建立虛擬環境
1 |
virtualenv --no-site-packages [虛擬環境名稱] |
啟用虛擬環境
1 2 |
cd env source ./bin/activate |
啟用成功後,在命令列會顯示虛擬環境的名稱,類似((env)Your-Computer:your_project UserName$
)
退出虛擬環境
1 |
$ deactivate |
如果想刪除虛擬環境,那麼直接執行rm -rf venv/
命令即可。
在虛擬環境安裝Python packages
Virtualenv 附帶有pip安裝工具,因此需要安裝的packages可以直接執行:
1 |
pip install [套件名稱] |
如果沒有啟動虛擬環境,系統環境也安裝了pip工具,那麼packages將被安裝在系統環境中,為了避免發生此事,可以在~/.bashrc檔案中加上:
1 |
export PIP_REQUIRE_VIRTUALENV=true |
如果在沒開啟虛擬環境時執行pip,就會提示錯誤:
1 |
Could not find an activated virtualenv (required). |
Virtualenvwrapper
Virtaulenvwrapper是virtualenv的擴充套件包,用於更方便管理虛擬環境,它可以做:
1. 將所有虛擬環境整合在一個目錄下
2. 管理(新增,刪除,複製)虛擬環境
3. 切換虛擬環境
4. …
安裝Virtualenvwrapper
安裝Virtualenvwrapper前需要virtualenv已近安裝
1 |
$ pip install virtualenvwrapper |
此時還不能使用virtualenvwrapper,預設virtualenvwrapper安裝在/usr/local/bin下面,實際上你需要執行virtualenvwrapper.sh檔案才行,先別急,開啟這個檔案看看,裡面有安裝步驟,我們照著操作把環境設定好。
- 建立目錄用來存放虛擬環境
1<span class="x">mkdir </span><span class="p">$</span><span class="nv">HOME</span><span class="x">/Envs</span>- 編輯~/.zshrc或~/.bashrc(根據你使用shell型別決定)export WORKON_HOME=$HOME/Envs source /usr/local/bin/virtualenvwrapper.sh 3. 執行:$ source ~/.zshrc
此時virtualenvwrapper就可以使用了。virtualenvwrapper的基本使用方式:
- 列出虛擬環境列表
1workon 或者 lsvirtualenv- 新建虛擬環境mkvirtualenv [虛擬環境名稱]
- 啟動/切換虛擬環境
1workon [虛擬環境名稱] - 刪除虛擬環境
1rmvirtualenv [虛擬環境名稱] - 離開虛擬環境,和virutalenv一樣的命令
1deactivate
參考:
http://www.virtualenv.org/en/latest/
http://stackoverflow.com/questions/11372221/virtualenvwrapper-not-found
http://www.openfoundry.org/tw/tech-column/8516-pythons-virtual-environment-and-multi-version-programming-tools-virtualenv-and-pythonbrew
http://virtualenvwrapper.readthedocs.org/en/latest/index.html