Python做爲程序員的週末語言平時用的比較多,常常會碰到個問題,就是怎麼解決不一樣環境下項目依賴的問題,並且python也存在2.x和3.x各類不兼容的狀況,因此用虛擬環境venv能夠僅維護項目依賴的模塊,使得各自應用有本身獨立的環境,相互隔離,相似於虛擬機環境,與宿主機和其餘虛擬機環境隔離。python
Python3.3 以上的版本經過 venv 模塊原生支持虛擬環境,能夠代替 Python 以前的 virtualenv。程序員
聊完了好處,下面講講如何使用。以目前使用的python3.x環境爲例。shell
在工做目錄執行以下命令:windows
$ /opt/soft/python36/bin/python3 -m venv .
執行完後會生成以下文件:python3.x
執行一下命令激活虛擬環境bash
# Linux、mac、Unix $ source ./bin/activate # windows cms C:> xxx/Scripts/activate.bat # windows powershell PS C:> xxx/Scripts/Activate.ps1
激活環境後用pip正常安裝包便可,以下圖網絡
使用以下命令便可將依賴模塊信息導出ui
$ pip freeze > requirements.txt
若是新環境沒有網絡的條件下可使用以下命令直接導入依賴包進項目:3d
$ pip download -d packages/ -r requirements.txt
而後離線安裝:code
$ pip install --no-index --find-links=packages/ -r requirements.txt
不過這種方式仍是有些弊端,好比python2.x python3.x不兼容問題,還有些模塊內部實現是c寫的,不一樣機器可能要從新編譯。