1. 程式人生 > >使用virtualenv搭建獨立的Python環境

使用virtualenv搭建獨立的Python環境

-s pla 問題 啟動 dea 軟件 err run ron

virtualenv可以搭建虛擬且獨立的python環境,可以使每個項目環境與其他項目獨立開來,保持環境的幹凈,解決包沖突問題。

一、安裝virtualenv

virtualenv實際上是一個python包,所以我們可以用easy_install或者pip安裝。下面介紹在CentOS系統上的安裝方法。

easy_install安裝方式:

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源):

1 [root@localhost ~]# yum install python-virtualenv

二、創建python虛擬環境

使用virtualenv命令創建python虛擬環境:virtualenv [虛擬環境名稱]。

1 2 3 [root@localhost ~]
# virtualenv env1 New python executable in env1/bin/python Installing setuptools, pip...done.

執行後,在本地會生成一個與虛擬環境同名的文件夾。

如果你的系統裏安裝有不同版本的python,可以使用--python參數指定虛擬環境的python版本:

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.

三、啟動虛擬環境

進入虛擬環境目錄,啟動虛擬環境,如下:

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安裝的所有模塊都會安裝到該虛擬環境目錄裏。

四、退出虛擬環境

退出虛擬環境:deactivate

1 2 (env1)[root@localhost env1]# deactivate [root@localhost env1]#

五、使用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...

使用virtualenv搭建獨立的Python環境