使用virtualenv
爲一個工程創建一個虛擬環境:
$ cd my_project_dir
$ virtualenv venv #venv爲虛擬環境目錄名,目錄名自定義
virtualenv venv 將會在當前的目錄中創建一個文件夾,包含了Python可執行文件,以及 pip 庫的一份拷貝,這樣就能安裝其他包了。虛擬環境的名字(此例中是 venv )可以是任意的;若省略名字將會把文件均放在當前目錄。
在任何你運行命令的目錄中,這會創建Python的拷貝,並將之放在叫做 venv 的文件中。
你可以選擇使用一個Python解釋器:
$ virtualenv -p /usr/bin/python2.7 venv # -p參數指定Python解釋器程序路徑
這將會使用 /usr/bin/python2.7 中的Python解釋器。
要開始使用虛擬環境,其需要被激活:
$ source venv/bin/activate
從現在起,任何你使用pip安裝的包將會放在 venv 文件夾中,與全局安裝的Python隔絕開。
像平常一樣安裝包,比如:
$ pip install requests
如果你在虛擬環境中暫時完成了工作,則可以停用它:
$ . venv/bin/deactivate
這將會回到系統默認的Python解釋器,包括已安裝的庫也會回到默認的。
要刪除一個虛擬環境,只需刪除它的文件夾。(執行 rm -rf venv )。
這裏virtualenv 有些不便,因爲virtual的啓動、停止腳本都在特定文件夾,可能一段時間後,你可能會有很多個虛擬環境散落在系統各處,你可能忘記它們的名字或者位置。
使用virtualenvwrapper
鑑於virtualenv不便於對虛擬環境集中管理,所以推薦使用virtualenvwrapper。 virtualenvwrapper提供了一系列命令使得和虛擬環境工作變得便利。它把你所有的虛擬環境都放在一個地方。
安裝virtualenvwrapper(確保virtualenv已安裝)
pip install virtualenvwrapper
pip install virtualenvwrapper-win #Windows使用該命令
安裝完成後,在~/.bashrc寫入以下內容
export WORKON_HOME=~/Envs
source /usr/local/bin/virtualenvwrapper.sh
第一行:virtualenvwrapper存放虛擬環境目錄
第二行:virtrualenvwrapper會安裝到python的bin目錄下,所以該路徑是python安裝目錄下bin/virtualenvwrapper.sh
source ~/.bashrc #讀入配置文件,立即生效
我所使用的配置文件如下:
#python虛擬工具的配置
export VIRTUALENV_USE_DISTRIBUTE=1 # 總是使用 pip/distribute
#創建目錄用來存放和管理虛擬環境,創建文件夾用來存放項目工程代碼
export WORKON_HOME=$HOME/.virtualenvs # 存放虛擬環境
export PROJECT_HOME=$HOME/workspace # 存放工程項目代碼
if [ -e /usr/local/bin/virtualenvwrapper.sh ];then
source /usr/local/bin/virtualenvwrapper.sh
else if [ -e /usr/bin/virtualenvwrapper.sh ];then
source /usr/bin/virtualenvwrapper.sh
fi
fi
#避如果沒有啓動虛擬環境,系統也安裝了pip工具,那麼套件將被安裝在系統環境中,爲了避免發生此事,可以在~/.bashrc文件中加上此句
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export PIP_RESPECT_VIRTUALENV=true
相關指令
創建虛擬環境 mkvirtualenv
mkvirtualenv venv
這樣會在WORKON_HOME變量指定的目錄下新建名爲venv的虛擬環境。
若想指定python版本,可通過”–python”指定python解釋器
mkvirtualenv --python=/usr/local/python3.5.3/bin/python venv
創建虛擬環境和對應的工程文件 workon
workon venv
這樣會在WORKON_HOME變量指定的目錄下新建名爲venv的虛擬環境,並在PROJECT_HOME變量制定的目錄下新建名爲venv的工程,使用workdon 更爲方便快捷
基本命令
查看當前的虛擬環境目錄
[root@localhost ~]# workon
py2
py3
切換到虛擬環境
[root@localhost ~]# workon py3
(py3) [root@localhost ~]#
退出虛擬環境
(py3) [root@localhost ~]# deactivate
[root@localhost ~]#
刪除虛擬環境
rmvirtualenv venv
其它命令
rmvirtualenv ENV:刪除運行環境ENV
mkproject mic:創建mic項目和運行環境mic
mktmpenv:創建臨時運行環境
lsvirtualenv: 列出可用的運行環境
lssitepackages: 列出當前環境安裝了的包
創建的環境是獨立的,互不干擾,無需sudo權限即可使用 pip 來進行包的管理。