virtualenv能夠搭建虛擬且獨立的python環境,可使每一個項目環境與其餘項目獨立開來,保持環境的乾淨,解決包衝突問題。python
1、安裝virtualenvbash
virtualenv其實是一個python包,因此咱們能夠用easy_install或者pip安裝。下面介紹在CentOS系統上的安裝方法。app
easy_install安裝方式:python2.7
1
2
|
[root@localhost ~]
# yum install python-setuptools python-devel
[root@localhost ~]
# easy_install virtualenv
|
pip安裝方式:工具
1
2
|
[root@localhost ~]
# easy_install pip
[root@localhost ~]
# pip install virtualenv
|
yum安裝方式(epel源):spa
1
|
[root@localhost ~]
# yum install python-virtualenv
|
2、建立python虛擬環境命令行
使用virtualenv命令建立python虛擬環境:virtualenv [虛擬環境名稱]。code
1
2
3
|
[root@localhost ~]
# virtualenv env1
New python executable
in
env1
/bin/python
Installing setuptools, pip...
done
.
|
執行後,在本地會生成一個與虛擬環境同名的文件夾。ip
若是你的系統裏安裝有不一樣版本的python,可使用--python參數指定虛擬環境的python版本:ci
1
2
3
4
5
|
[root@localhost ~]
# virtualenv --python=/usr/local/python-2.7.8/bin/python2.7 env1
Running virtualenv with interpreter
/usr/local/python-2
.7.8
/bin/python2
.7
New python executable
in
env1
/bin/python2
.7
Also creating executable
in
env1
/bin/python
Installing setuptools, pip...
done
.
|
實測默認狀況下虛擬環境不會依賴系統環境的global site-packages。好比系統環境裏安裝了MySQLdb模塊,在虛擬環境裏import MySQLdb會提示ImportError。若是想依賴系統環境的第三方軟件包,可使用參數--system-site-packages。此外,也可以使用virtualenvwrapper的toggleglobalsitepackages命令控制當前環境是否使用global site-packages。
1
2
3
|
[root@localhost ~]
# virtualenv --system-site-packages env1
New python executable
in
env1
/bin/python
Installing setuptools, pip...
done
.
|
3、啓動虛擬環境
進入虛擬環境目錄,啓動虛擬環境,以下:
1
2
3
4
|
[root@localhost ~]
# cd env1/
[root@localhost env1]
# source bin/activate
(env1)[root@localhost env1]
# python -V
Python 2.7.8
|
此時命令行前面會多出一個括號,括號裏爲虛擬環境的名稱。之後easy_install或者pip安裝的全部模塊都會安裝到該虛擬環境目錄裏。
4、退出虛擬環境
退出虛擬環境:deactivate
1
2
|
(env1)[root@localhost env1]
# deactivate
[root@localhost env1]
#
|
5、使用virtualenvwrapper
virtualenvwrapper是virtualenv的擴展工具,能夠方便的建立、刪除、複製、切換不一樣的虛擬環境。
1.安裝virtualenvwrapper
1
|
[root@localhost ~]
# easy_install virtualenvwrapper
|
或者:
1
|
[root@localhost ~]
# pip install virtualenvwrapper
|
建立一個文件夾,用於存放全部的虛擬環境:
1
|
[root@localhost ~]
# mkdir ~/workspaces
|
設置環境變量,把下面兩行添加到~/.bashrc裏。
1
2
|
[root@localhost ~]
# export WORKON_HOME=~/workspaces
[root@localhost ~]
# source /usr/bin/virtualenvwrapper.sh
|
而後就可使用virtualenvwrapper了。
2.建立虛擬環境:mkvirtualenv [虛擬環境名稱]
1
2
3
4
5
6
7
|
[root@localhost ~]
# mkvirtualenv env1
New python executable
in
env1
/bin/python
Installing setuptools, pip...
done
.
(env1)[root@localhost ~]
# mkvirtualenv env2
New python executable
in
env2
/bin/python
Installing setuptools, pip...
done
.
(env2)[root@localhost ~]
#
|
注意:mkvirtualenv可使用virtualenv的參數,好比--python來指定python版本。建立虛擬環境後,會自動切換到此虛擬環境裏。虛擬環境目錄都在WORKON_HOME裏。
3.列出虛擬環境:lsvirtualenv -b
1
2
3
|
(env2)[root@localhost ~]
# lsvirtualenv -b
env1
env2
|
4.切換虛擬環境:workon [虛擬環境名稱]
1
2
3
|
(env2)[root@localhost ~]
# workon env1
(env1)[root@localhost ~]
# echo $VIRTUAL_ENV
/root/workspaces/env1
|
5.查看環境裏安裝了哪些包:lssitepackages
6.進入當前環境的目錄:cdvirtualenv [子目錄名]
1
2
3
4
5
6
|
(env1)[root@localhost ~]
# cdvirtualenv
(env1)[root@localhost env1]
# pwd
/root/workspaces/env1
(env1)[root@localhost env1]
# cdvirtualenv bin
(env1)[root@localhost bin]
# pwd
/root/workspaces/env1/bin
|
進入當前環境的site-packages目錄:cdsitepackages [子目錄名]
1
2
3
4
5
6
|
(env1)[root@localhost env1]
# cdsitepackages
(env1)[root@localhost site-packages]
# pwd
/root/workspaces/env1/lib/python2
.6
/site-packages
(env1)[root@localhost site-packages]
# cdsitepackages pip
(env1)[root@localhost pip]
# pwd
/root/workspaces/env1/lib/python2
.6
/site-packages/pip
|
7.控制環境是否使用global site-packages:toggleglobalsitepackages
8.複製虛擬環境:cpvirtualenv [source] [dest]
1
2
3
|
[root@localhost ~]
# cpvirtualenv env1 env3
Copying env1 as env3...
(env3)[root@localhost ~]
#
|
9.退出虛擬環境:deactivate
10.刪除虛擬環境:rmvirtualenv [虛擬環境名稱]
1
2
|
[root@localhost ~]
# rmvirtualenv env2
Removing env2...
|