[Python] Virtualenv 簡介
Introduction
virtualenv
是一個程式,用來產生隔離且獨立的python以及套件執行環境。通常使用的場景為一個專案製作一個虛擬環境,如此一來就不會因為版本的問題而彼此影響。
virtualenv
的原理就是利用 Unix 的 source
指令來從檔案中讀取指令來執行,進而暫時改變抽換目前這個執行階段的 python 的環境。這也是每次登入都要重新 activate
的原因了。
virtualenv
會建立一個資料夾,並複製所需要程式進資料夾,如 python
、 pip
,接下來不管是執行 python
、 pip
或接下來安裝的套件,全都是在這個資料夾獨立且隔離的。所以就不會再發生跟系統版本不合,或是權限不足不能自己安裝套件的問題了!
執行 virtualenv
前後比較:
# 執行前,程式位於 homebrew 建立的資料夾內
hasheesh@PCWU-MacBook-Pro ~ $ which python
/usr/local/bin/python
hasheesh@PCWU-MacBook-Pro ~ $ which pip
/usr/local/bin/pip
# 執行後,程式位置更改至所建的資料夾內
(ENV) hasheesh@PCWU-MacBook-Pro ~ $ which python
/Users/hasheesh/Projects/flask/ENV/bin/python
(ENV) hasheesh@PCWU-MacBook-Pro ~ $ which pip
/Users/hasheesh/Projects/flask/ENV/bin/pip
Usage
virtualenv
使用指令:
# Create new environment.
virtualenv ENV
# start using this environment
source bin/activate
# Leave
deactivate
從 github/gitignore 的 Python 檔案可以看得出來大家慣用的應該是:
# virtualenv
.venv
venv/
ENV/
目前我是暫時使用 ENV
Reference and Reading List
-
http://missions5.blogspot.tw/2014/06/pre-surveyvirtualenv-pythonbrew-pyenv.html
-
http://pythonguidecn.readthedocs.io/zh/latest/dev/virtualenvs.html