虛擬環(huán)境
為什么需要虛擬環(huán)境:
到目前位置,我們所有的第三方包安裝都是直接通過pip install xx
的方式進(jìn)行安裝的,這樣安裝會(huì)將那個(gè)包安裝到你的系統(tǒng)級(jí)的Python
環(huán)境中舟舒。但是這樣有一個(gè)問題涕烧,就是如果你現(xiàn)在用Django 1.10.x
寫了個(gè)網(wǎng)站沉衣,然后你的領(lǐng)導(dǎo)跟你說盔然,之前有一個(gè)舊項(xiàng)目是用Django 0.9
開發(fā)的愉烙,讓你來維護(hù)讨盒,但是Django 1.10
不再兼容Django 0.9
的一些語法了。這時(shí)候就會(huì)碰到一個(gè)問題步责,我如何在我的電腦中同時(shí)擁有Django 1.10
和Django 0.9
兩套環(huán)境呢返顺?這時(shí)候我們就可以通過虛擬環(huán)境來解決這個(gè)問題。
虛擬環(huán)境原理介紹:
虛擬環(huán)境相當(dāng)于一個(gè)抽屜蔓肯,在這個(gè)抽屜中安裝的任何軟件包都不會(huì)影響到其他抽屜遂鹊。并且在項(xiàng)目中,我可以指定這個(gè)項(xiàng)目的虛擬環(huán)境來配合我的項(xiàng)目蔗包。比如我們現(xiàn)在有一個(gè)項(xiàng)目是基于Django 1.10.x
版本秉扑,又有一個(gè)項(xiàng)目是基于Django 0.9.x
的版本,那么這時(shí)候就可以創(chuàng)建兩個(gè)虛擬環(huán)境调限,在這兩個(gè)虛擬環(huán)境中分別安裝Django 1.10.x
和Django 0.9.x
來適配我們的項(xiàng)目舟陆。
安裝virtualenv
:
virtualenv
是用來創(chuàng)建虛擬環(huán)境的軟件工具,我們可以通過pip
或者pip3
來安裝:
pip install virtualenv
pip3 install virtualenv
創(chuàng)建虛擬環(huán)境:
創(chuàng)建虛擬環(huán)境非常簡(jiǎn)單耻矮,通過以下命令就可以創(chuàng)建了:
virtualenv [虛擬環(huán)境的名字]
如果你當(dāng)前的Python3/Scripts
的查找路徑在Python2/Scripts
的前面秦躯,那么將會(huì)使用python3
作為這個(gè)虛擬環(huán)境的解釋器。如果python2/Scripts
在python3/Scripts
前面裆装,那么將會(huì)使用Python2
來作為這個(gè)虛擬環(huán)境的解釋器踱承。
進(jìn)入環(huán)境:
虛擬環(huán)境創(chuàng)建好了以后,那么可以進(jìn)入到這個(gè)虛擬環(huán)境中哨免,然后安裝一些第三方包勾扭,進(jìn)入虛擬環(huán)境在不同的操作系統(tǒng)中有不同的方式,一般分為兩種铁瞒,第一種是Windows
妙色,第二種是*nix
:
-
windows
進(jìn)入虛擬環(huán)境:進(jìn)入到虛擬環(huán)境的Scripts
文件夾中,然后執(zhí)行activate
慧耍。 -
*nix
進(jìn)入虛擬環(huán)境:source /path/to/virtualenv/bin/activate
一旦你進(jìn)入到了這個(gè)虛擬環(huán)境中身辨,你安裝包丐谋,卸載包都是在這個(gè)虛擬環(huán)境中,不會(huì)影響到外面的環(huán)境煌珊。
退出虛擬環(huán)境:
退出虛擬環(huán)境很簡(jiǎn)單号俐,通過一個(gè)命令就可以完成:deactivate
。
創(chuàng)建虛擬環(huán)境的時(shí)候指定Python
解釋器:
在電腦的環(huán)境變量中定庵,一般是不會(huì)去更改一些環(huán)境變量的順序的吏饿。也就是說比如你的Python2/Scripts
在Python3/Scripts
的前面,那么你不會(huì)經(jīng)常去更改他們的位置蔬浙。但是這時(shí)候我確實(shí)是想在創(chuàng)建虛擬環(huán)境的時(shí)候用Python3
這個(gè)版本猪落,這時(shí)候可以通過-p
參數(shù)來指定具體的Python
解釋器:
virtualenv -p C:\Python36\python.exe [virutalenv name]
virtualenvwrapper:
virtualenvwrapper
這個(gè)軟件包可以讓我們管理虛擬環(huán)境變得更加簡(jiǎn)單。不用再跑到某個(gè)目錄下通過virtualenv
來創(chuàng)建虛擬環(huán)境畴博,并且激活的時(shí)候也要跑到具體的目錄下去激活笨忌。
安裝virtualenvwrapper
:
- *nix:
pip install virtualenvwrapper
。 - windows:
pip install virtualenvwrapper-win
俱病。
virtualenvwrapper
基本使用:
- 創(chuàng)建虛擬環(huán)境:
mkvirtualenv my_env
那么會(huì)在你當(dāng)前用戶下創(chuàng)建一個(gè)Env
的文件夾官疲,然后將這個(gè)虛擬環(huán)境安裝到這個(gè)目錄下。
如果你電腦中安裝了python2
和python3
亮隙,并且兩個(gè)版本中都安裝了virtualenvwrapper
途凫,那么將會(huì)使用環(huán)境變量中第一個(gè)出現(xiàn)的Python
版本來作為這個(gè)虛擬環(huán)境的Python
解釋器。
- 切換到某個(gè)虛擬環(huán)境:
workon my_env
- 退出當(dāng)前虛擬環(huán)境:
deactivate
- 刪除某個(gè)虛擬環(huán)境:
rmvirtualenv my_env
- 列出所有虛擬環(huán)境:
lsvirtualenv
- 進(jìn)入到虛擬環(huán)境所在的目錄:
cdvirtualenv
修改mkvirtualenv
的默認(rèn)路徑:
在我的電腦->右鍵->屬性->高級(jí)系統(tǒng)設(shè)置->環(huán)境變量->系統(tǒng)變量
中添加一個(gè)參數(shù)WORKON_HOME
溢吻,將這個(gè)參數(shù)的值設(shè)置為你需要的路徑维费。
創(chuàng)建虛擬環(huán)境的時(shí)候指定Python
版本:
在使用mkvirtualenv
的時(shí)候,可以指定--python
的參數(shù)來指定具體的python
路徑:
mkvirtualenv --python==C:\Python36\python.exe hy_env