python特有的一種軟件環境,建立多個python環境,各個環境之間徹底隔離,互不影響。它能夠用來解決Python項目開發和運行過程當中的依賴項和版本問題,而沒必要和其餘項目的Python環境以及全局的Python環境發生衝突。
$ pip install virtualenv
注:Linux下默認未安裝pip,須要手動安裝pip命令。python
sudo apt install python-pip #python2.7安裝 sudo apt install python3-pip # python3安裝 pip install --upgrade pip #pip 更新
安裝完成後,可使用 virtualenv 命令建立放置虛擬環境的目錄:windows
$ virtualenv [OPTIONS] [虛擬環境名稱]
-p PYTHON_EXE, --python=PYTHON_EXE 指定生成的虛擬環境使用的Python解釋器:bash
#順序均可以 virtualenv -p /usr/bin/python3.6 ENV virtualenv ENV --python=python3.6 virtualenv --python=python3.6 ENV
ENV/lib
和 ENV/include
目錄中包含了虛擬環境ENV使用的庫文件。在虛擬環境中安裝的第三方包會安裝在 ENV/lib/python3.4/site-packages
目錄下。app
ENV/bin
目錄裏面放置了可執行文件,在裏面有新安裝的Python 包中的可執行程序,包括pip等相關工具。python2.7
默認狀況下,虛擬環境會依賴系統環境中的 sit package,就是說系統中已經安裝好的第三方 package 也會安裝在虛擬環境中,若是不想依賴這些 package,那麼能夠加上 --no-site-packages 參數創建虛擬環境。工具
$ virtualenv --no-site-packages [虛擬環境名稱]
# virtualenv --version
# virtualenv -h
# virtualenv --no-setuptools ENV
# virtualenv --no-pip ENV
# virtualenv --no-wheel ENV
新建立的虛擬環境目錄中有一個啓動腳本 ENV/bin/activate ,直接使用 source 命令來啓動虛擬環境。code
$ source ENV/bin/activate
退出當前虛擬環境使用 deactivate 命令。ip
$ deactivate
Virtaulenvwrapper 是 virtualenv 的擴展包,能夠把新建立的環境記錄下來,不須要每次啓動虛擬環境時都執行一遍 source 命令,能夠更方便的管理虛擬環境。
它能夠實現:
一、將全部虛擬環境整合在一個目錄下
二、管理(新增,刪除,複製)虛擬環境
三、快速切換虛擬環境
$ pip install virtualenvwrapper
此時還不能使用virtualenvwrapper,默認virtualenvwrapper安裝在/usr/local/bin下面,實際上你須要運行virtualenvwrapper.sh文件才行,裏面有安裝步驟,咱們照着操做把環境設置好。開發
# $HOME是用戶主目錄 $ mkdir $HOME/.virtualenvs
export WORKON_HOME=$HOME/.virtualenvs #export PROJECT_HOME=$HOME/Devel export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source /usr/local/bin/virtualenvwrapper.sh
WORKON_HOME: 告訴 virtualenvwrapper 在哪裏放置你的虛擬環境,默認是在 $HOME/.virtualenvs 目錄下。若是這個目錄不存在,virtualenvwrapper 運行的時候會自動建立它。PROJECT_HOME :告訴virtualenvwrapper在哪裏存放你的項目的工做目錄it
$ source .bashrc
pip install virtualenvwrapper-win
設置環境變量
在系統變量中新建「變量名」:WORKON_HOME:「你自定義的路徑」。
lsvirtualenv: 列出虛擬環境列表(我的喜歡用第二個)
workon+Enter: 列出虛擬環境列表
mkvirtualenv [虛擬環境名稱]: 新建虛擬環境
workon [虛擬環境名稱]: 切換虛擬環境
rmvirtualenv [虛擬環境名稱]: 刪除虛擬環境
deactivate: 離開虛擬環境