前段時間為了部署網(wǎng)站上線缘眶,買了阿里云的服務(wù)器抠蚣。不過選擇ubuntu系統(tǒng)自帶的是pyhton2.7版本。想在原有的系統(tǒng)上增加一個python3.5系統(tǒng)碧注,于是準(zhǔn)備用virtualenv創(chuàng)建虛擬環(huán)境進(jìn)行安裝。
virtualenv是什么席怪?
virtualenv是一個創(chuàng)建隔絕的Python環(huán)境的工具应闯。
為什么要創(chuàng)建虛擬環(huán)境?
它解決了“項目X依賴于版本1.x挂捻,而項目Y需要項目4.x”的兩難問題碉纺,而且使你的全局site-packages目錄保持干凈和可管理。
安裝步驟
pip install virtualenv
用法
創(chuàng)建虛擬環(huán)境
virtualenv ENV
New python executable in
Installing setuptools, pip...done.
# 創(chuàng)建一個名為ENV的目錄
# 安裝了ENV/bin/python
# 創(chuàng)建了lib,include,bin目錄,安裝了pip
安裝指定的python版本
$ virtualenv -p /usr/bin/python2.7 環(huán)境名
virtualenv -p /usr/bin/python3 環(huán)境名
或
virtualenv -p python3 環(huán)境名稱
# 不指定版本則使用系統(tǒng)默認(rèn)版本
virtualenv命令參數(shù)
$ virtualenv [OPTIONS] DEST_DIR
選項:
--version 顯示當(dāng)前版本號刻撒。
-h, --help 顯示幫助信息骨田。
-v, --verbose 顯示詳細(xì)信息。
-q, --quiet 不顯示詳細(xì)信息声怔。
-p PYTHON_EXE 指定所用的python解析器的版本
比如 --python=python2.5 就使用2.5版本的解析器創(chuàng)建新的隔離環(huán)境态贤。
默認(rèn)使用的是當(dāng)前系統(tǒng)安裝(/usr/bin/python)的python解析器
--clear 清空非root用戶的安裝,并重頭開始創(chuàng)建隔離環(huán)境醋火。
--no-site-packages 默認(rèn)悠汽,令隔離環(huán)境不能訪問系統(tǒng)全局的site-packages目錄箱吕。
--system-site-packages 令隔離環(huán)境可以訪問系統(tǒng)全局的site-packages目錄。
激活虛擬環(huán)境
cd venv
source bin/activate # Windows 系統(tǒng)下運行 Scripts\
# 出現(xiàn)(venv)前綴柿冲,當(dāng)前環(huán)境切換為venv
退出虛擬環(huán)境
$ deactivate
實用技巧
記錄安裝的第三方模塊
pip freeze > requirements.txt
# 若無重定向則直接打印出來
安裝txt文件里所記錄的所有第三方模塊
pip install -r requirements.txt
virtualenv 原理
把系統(tǒng)Python復(fù)制一份到virtualenv的環(huán)境茬高,用命令source venv/bin/activate進(jìn)入一個virtualenv環(huán)境時,virtualenv會修改相關(guān)環(huán)境變量假抄,讓命令python和pip均指向當(dāng)前的virtualenv環(huán)境怎栽。
參考文檔:
[1] virtualenv 中文文檔1.7
[2] Python指南 Virtualenv
[3] 廖雪峰Python教程 virtualenv庫