virtualenv------用來創建一個虛擬的python環境,一個專屬於項目的python環境。用virtualenv 來保持一個乾淨的環境很是有用html
在開發Python應用程序的時候,系統安裝的Python3只有一個版本:3.4。全部第三方的包都會被pip
安裝到Python3的site-packages
目錄下。python
若是咱們要同時開發多個應用程序,那這些應用程序都會共用一個Python,就是安裝在系統的Python 3。若是應用A須要jinja 2.7,而應用B須要jinja 2.6怎麼辦?這種狀況下,每一個應用可能須要各自擁有一套「獨立」的Python運行環境。virtualenv就是用來爲一個應用建立一套「隔離」的Python運行環境。django
經過pip安裝virtualenv:vim
pip install virtualenv
爲一個工程項目搭建一個虛擬環境:bash
cd my_project
virtualenv --no-site-packages --python=python3 venvName # 獲得獨立第三方包的環境,而且指定解釋器是python3
# 注意若是提示找不到virtualenv須要先執行一下如下命令:app
[root@dc Python3] /usr/bin/easy_install virtualenv
要開始使用虛擬環境,其須要被激活:ui
source my_project_env/bin/activate
停用虛擬環境:spa
deactivate
停用後將回到系統默認的Python解釋器code
用pip freeze查看當前安裝的python包htm
pip freeze
這將會建立一個 requirements.txt
文件,其中包含了當前環境中全部包及 各自的版本的簡單列表
pip freeze > requirements.txt
安裝requirements文件中的包
pip install -r requirements.txt
virtualenv
的一個最大的缺點就是:
每次開啓虛擬環境以前要去虛擬環境所在目錄下的 bin
目錄下 source
一下 activate
,這就須要咱們記住每一個虛擬環境所在的目錄。
而且還有可能你忘記了虛擬環境放在哪,使用virtualenvwrapper管理你的虛擬環境(virtualenv),其實他就是統一管理虛擬環境的目錄,而且省去了source的步驟。
pip3 install virtualenvwrapper
把下面兩行代碼添加到 ~/.bashrc文件中 打開文件 vim ~/.bashrc 寫入如下兩行代碼 export WORKON_HOME=~/Envs #設置virtualenv的統一管理目錄 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' #添加virtualenvwrapper的參數,生成乾淨隔絕的環境 export VIRTUALENVWRAPPER_PYTHON=/opt/python347/bin/python3 #指定python解釋器 source /opt/python34/bin/virtualenvwrapper.sh #執行virtualenvwrapper安裝腳本 讀取文件,使得生效,此時已經可使用virtalenvwrapper source ~/.bashrc
建立一個虛擬環境: $ mkvirtualenv my_django115 這會在 ~/Envs 中建立 my_django115 文件夾。 在虛擬環境上工做:激活虛擬環境my_django115 $ workon my_django115 再建立一個新的虛擬環境 $ mkvirtualenv my_django2 virtualenvwrapper 提供環境名字的tab補全功能。 當有不少環境, 而且很難記住它們的名字時,這就顯得頗有用。
workon還能夠任意中止你當前的環境,能夠在多個虛擬環境中來回切換 workon my_django115 workon my_django2 也能夠手動中止虛擬環境 deactivate 刪除虛擬環境,須要先退出虛擬環境 rmvirtualenv my_django115
lsvirtualenv 列舉全部的環境。 cdvirtualenv 導航到當前激活的虛擬環境的目錄中,好比說這樣您就可以瀏覽它的 site-packages 。 cdsitepackages 和上面的相似,可是是直接進入到 site-packages 目錄中。 lssitepackages 顯示 site-packages 目錄中的內容。 完整官網介紹:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html