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