python 虛擬環境virtualenv
virtualenv 是一個建立隔絕的Python環境的工具。virtualenv建立一個包含所有必要的可執行檔案的資料夾,用來使用Python工程所需的包。
為什麼要裝虛擬環境呢?
- 隔離專案之間的第三方包依賴,如A專案依賴django1.2.5,B專案依賴django1.3。
- 為部署應用提供方便,把開發環境的虛擬環境打包到生產環境即可,不需要在伺服器上再折騰一翻。在伺服器上都不用安裝virtualenv,直接將virtualenv建立的目錄拷貝到伺服器,修改路徑,進行虛擬環境遷移就可以用了。
- 還可以用在沒有root許可權的python環境配置上,如果沒有root許可權,可以先自己搞一個virtualenv,再在virtualenv中使用pip安裝。(系統中沒有pip,並且也沒有root許可權使用sudo apt-get安裝)
安裝
pip install virtualenv
基本使用
- 為一個工程建立一個虛擬環境:
$ cd my_project_dir
$ virtualenv venv #venv為虛擬環境目錄名,目錄名自定義
virtualenv venv
將會在當前的目錄中建立一個資料夾,包含了Python可執行檔案,以及 pip
庫的一份拷貝,這樣就能安裝其他包了。虛擬環境的名字(此例中是 venv
)可以是任意的;若省略名字將會把檔案均放在當前目錄。
在任何你執行命令的目錄中,這會建立Python的拷貝,並將之放在叫做 venv
你可以選擇使用一個Python直譯器:
$ virtualenv -p /usr/bin/python2.7 venv # -p引數指定Python直譯器程式路徑
這將會使用 /usr/bin/python2.7
中的Python直譯器。
- 要開始使用虛擬環境,其需要被啟用:
$ source venv/bin/activate
從現在起,任何你使用pip安裝的包將會放在 venv
資料夾中,與全域性安裝的Python隔絕開。
像平常一樣安裝包,比如:
$ pip install requests
- 如果你在虛擬環境中暫時完成了工作,則可以停用它:
$ . venv/bin/deactivate
這將會回到系統預設的Python直譯器,包括已安裝的庫也會回到預設的。
要刪除一個虛擬環境,只需刪除它的資料夾。(執行 rm -rf venv
)。
這裡virtualenv 有些不便,因為virtual的啟動、停止指令碼都在特定資料夾,可能一段時間後,你可能會有很多個虛擬環境散落在系統各處,你可能忘記它們的名字或者位置。
virtualenvwrapper
鑑於virtualenv不便於對虛擬環境集中管理,所以推薦直接使用virtualenvwrapper。 virtualenvwrapper提供了一系列命令使得和虛擬環境工作變得便利。它把你所有的虛擬環境都放在一個地方。
安裝virtualenvwrapper(確保virtualenv已安裝)
pip install virtualenvwrapper
pip install virtualenvwrapper-win #Windows使用該命令
安裝完成後,在~/.bashrc寫入以下內容
export WORKON_HOME=~/Envs
source /usr/local/bin/virtualenvwrapper.sh
第一行:virtualenvwrapper存放虛擬環境目錄
第二行:virtrualenvwrapper會安裝到python的bin目錄下,所以該路徑是python安裝目錄下bin/virtualenvwrapper.sh
source ~/.bashrc #讀入配置檔案,立即生效
virtualenvwrapper基本使用
1.建立虛擬環境 mkvirtualenv
mkvirtualenv venv
這樣會在WORKON_HOME變數指定的目錄下新建名為venv的虛擬環境。
若想指定python版本,可通過"--python"指定python直譯器
mkvirtualenv --python=/usr/local/python3.5.3/bin/python venv
2. 基本命令
檢視當前的虛擬環境目錄
[[email protected] ~]# workon
py2
py3
切換到虛擬環境
[[email protected] ~]# workon py3
(py3) [[email protected] ~]#
退出虛擬環境
(py3) [[email protected] ~]# deactivate
[[email protected] ~]#
刪除虛擬環境
rmvirtualenv venv
本文參考連結:
http://pythonguidecn.readthedocs.io/zh/latest/dev/virtualenvs.html
https://blog.csdn.net/howardwood/article/details/79580094