Python虛擬環(huán)境(virtualenv與virtualenvwrapper)
1.virtualenv是什么,有什么用均唉?
virtualenv是創(chuàng)建獨(dú)立Python開發(fā)環(huán)境的工具
作用:通過(guò)創(chuàng)建獨(dú)立的環(huán)境來(lái)解決依賴恨诱,版本以及間接權(quán)限的問(wèn)題斩萌。比如某個(gè)項(xiàng)目依賴Django 1.7,而當(dāng)前全局開發(fā)環(huán)境版本為1.10.導(dǎo)致不兼容整個(gè)項(xiàng)目無(wú)法運(yùn)行抹沪,這個(gè)時(shí)候使用virtualenv創(chuàng)建一個(gè)獨(dú)立的環(huán)境去安裝指定版本的包纵菌,讓整個(gè)項(xiàng)目在這個(gè)虛擬環(huán)境中運(yùn)行就行了洋闽,不會(huì)干擾本地環(huán)境玄柠,還可以隨時(shí)創(chuàng)建刪除,非常方便诫舅。
注意:virtualenv創(chuàng)建一個(gè)擁有自己安裝目錄的環(huán)境羽利。這個(gè)環(huán)境不與其他虛擬環(huán)境共享庫(kù),能夠方便的管理python版本和python庫(kù)刊懈。
2.安裝virtualenv
使用pip安裝virtualenv
pip install virtualenv
或者需要權(quán)限的請(qǐng)加 sudo
sudo pip install virtualenv
3.virtualenv的基本使用
(1)創(chuàng)建虛擬環(huán)境
virtualenv env #創(chuàng)建一個(gè)名字叫做env的虛擬環(huán)境,默認(rèn)python版本為3.X
需要指定python版本的使用
virtualenv env -p /usr/bin/python ? ? ? ? ?#創(chuàng)建python2.X環(huán)境
virtualenv env -p /usr/bin/python3 ? ? ? ?#創(chuàng)建python3.X環(huán)境
-p以及后面的內(nèi)容是python解釋器的位置
查看python解釋器的位置可以使用
which python ? ? ? ? ?#Python2的位置
which python3 ? ? ? ?#Python3的位置
lib,所有安裝的python庫(kù)都會(huì)放在這個(gè)目錄中的lib/pythonx.x/site-packages/下
bin,bin/python是在當(dāng)前環(huán)境是使用的python解釋器
想要繼承本地所有的庫(kù)可以使用
virtualenv --system-site-packages env
2.激活virtualenv
進(jìn)入env目錄下
cd env ? ?#進(jìn)入虛擬環(huán)境目錄
source ./bin/activate ? ?#激活當(dāng)前虛擬環(huán)境这弧,會(huì)在終端中顯示
3.關(guān)閉virtualenv
deactivate
或者我們寫個(gè)shell腳本啟動(dòng)virtualenv
vim activate.sh
按i進(jìn)入編輯模式
#!/bin/bash
source env/bin/activate
然后按esc再按shift+:再按wq保存退出
然后執(zhí)行. ./activate
4.生成可打包的環(huán)境
在某些時(shí)候我們將虛擬環(huán)境直接打包娃闲,然后要用的時(shí)候直接解壓使用,這在沒有網(wǎng)絡(luò)的時(shí)候是非常的方便的匾浪。(不能跨平臺(tái)使用)
使用命令
virtualenv --relocatable ./
5.想要?jiǎng)h除的虛擬環(huán)境直接將env文件夾刪除就行
rm -rf env
6.還有功能更加豐富的Virtualenvwrapper
安裝
sudo pip install virtualenvwrapper
配置
修改~/.bash_profile或者~/.bashrc或者裝了Zsh的修改.zshrc
添加以下語(yǔ)句:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh
然后重啟或者
source ~/.bash_profile
source ~/.bashrc
source ~/.zshr
這三個(gè)自己根據(jù)自己的系統(tǒng)選擇
命令列表
mkvirtualenv env ?#創(chuàng)建環(huán)境
workon ?#列出已有環(huán)境
workon env1
workon env2 ?#切換虛擬環(huán)境
退出
deactivate
創(chuàng)建project
將項(xiàng)目創(chuàng)建到PROJECT_HOME目錄下畜吊,實(shí)際上相當(dāng)于在某個(gè)目錄下創(chuàng)建了一個(gè)環(huán)境
mkproject
還有一些
rmvirtualenvENV:刪除運(yùn)行環(huán)境ENV
mktmpenv:創(chuàng)建臨時(shí)運(yùn)行環(huán)境
lsvirtualenv: 列出可用的運(yùn)行環(huán)境
lssitepackages: 列出當(dāng)前環(huán)境安裝了的包
啟動(dòng)和關(guān)閉與virtualenv相同