Python之 Virtualenv簡明教程
virtualenv
透過建立獨立Python開發環境的工具, 來解決依賴、版本以及間接許可權
問題. 比如一個專案依賴Django1.3 而當前全域性開發環境為Django1.7, 版本跨度過大, 導致不相容使專案無法正在執行, 使用virtualenv可以解決這些問題.
virtualenv
建立一個擁有自己安裝目錄的環境, 這個環境不與其他虛擬環境共享庫, 能夠方便的管理python版本和管理python庫
1. 安裝Virtualenv
使用
pip
安裝Virtualenv, 使用過python的都應該知道
pip
包管理神器吧, 即使不知道, 網站也有大把的教程, 不過推薦檢視
$ pip install virtualenv//或者由於許可權問題使用sudo臨時提升許可權 $ sudo pip install virtualenv
2. virtualenv基本使用
現在開始使用virtualenv管理python環境
➜ Test git:(master) ✗ virtualenv ENV #建立一個名為ENV的目錄, 並且安裝了ENV/bin/python, 建立了lib,include,bin目錄,安裝了pip New python executable in Installing setuptools, pip...done. ➜ Test git:(master) ✗ cd ENV ➜ ENV git:(master) ✗ ll drwxr-xr-x 14 andrew_liu staff 476 12 8 08:49 bin drwxr-xr-x 3 andrew_liu staff 102 12 8 08:49 include drwxr-xr-x 3 andrew_liu staff 102 12 8 08:49 lib
-
lib
,所有安裝的python庫都會放在這個目錄中的lib/pythonx.x/site-packages/
下 -
bin
,bin/python
是在當前環境是使用的python直譯器
如果在命令列中執行
virtualenv --system-site-packages ENV
, 會繼承/usr/lib/python2.7/site-packages
下的所有庫, 最新版本virtualenv把把訪問全域性site-packages
作為預設行為
default behavior.
2.1. 啟用virtualenv
#ENV目錄下使用如下命令 ➜ ENV git:(master) ✗ source ./bin/activate #啟用當前virtualenv (ENV)➜ ENV git:(master) ✗ #注意終端發生了變化
#使用pip檢視當前庫 (ENV)➜ ENV git:(master) ✗ pip listpip (1.5.6)setuptools (3.6)wsgiref (0.1.2) #發現在只有這三個pip freeze #顯示所有依賴pip freeze > requirement.txt #生成requirement.txt檔案pip install -r requirement.txt #根據requirement.txt生成相同的環境
2.2. 關閉virtualenv
使用下面命令
$ deactivate
2.3. 指定python版本
可以使用
-p PYTHON_EXE
選項在建立虛擬環境的時候指定python版本
#建立python2.7虛擬環境 ➜ Test git:(master) ✗ virtualenv -p /usr/bin/python2.7 ENV2.7 Running virtualenv with interpreter /usr/bin/python2.7 New python executable in ENV2.7/bin/python Installing setuptools, pip...done.
#建立python3.4虛擬環境 ➜ Test git:(master) ✗ virtualenv -p /usr/local/bin/python3.4 ENV3.4 Running virtualenv with interpreter /usr/local/bin/python3.4 Using base prefix '/Library/Frameworks/Python.framework/Versions/3.4' New python executable in ENV3.4/bin/python3.4 Also creating executable in ENV3.4/bin/python Installing setuptools, pip...done.
到此已經可以解決python版本衝突問題和python庫不同版本的問題
3. 其他
3.1. 生成可打包環境
某些特殊需求下,可能沒有網路, 我們期望直接打包一個ENV, 可以解壓後直接使用, 這時候可以使用
virtualenv -relocatable
指令將ENV修改為可更改位置的ENV
#對當前已經建立的虛擬環境更改為可遷移 ➜ ENV3.4 git:(master) ✗ virtualenv --relocatable ./ Making script ./bin/easy_install relative Making script ./bin/easy_install-3.4 relative Making script ./bin/pip relative Making script ./bin/pip3 relative Making script ./bin/pip3.4 relative
3.2. 獲得幫助
$ virtualenv -h
當前的ENV都被修改為相對路徑, 可以打包當前目錄, 上傳到其他位置使用
這並不能使虛擬環境跨平臺使用
4. 參考連結
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2636118/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python開發之virtualenv與virtualenvwrapperPythonAPP
- python virtualenv報錯-bash: virtualenv: command not foundPython
- 簡明 docker 教程Docker
- 簡單介紹python虛擬環境 virtualenv的使用Python
- Python系列之-Nginx+uWSGI+virtualenv多專案部署PythonNginx
- virtualenv管理Python環境Python
- 最簡明的Shiro教程
- GitBook簡明安裝教程Git
- 《簡明 PHP 教程》00 開篇PHP
- 《簡明 PHP 教程》04 基礎PHP
- 《簡明 PHP 教程》02 安裝PHP
- Raspberry Pi 3簡明配置教程
- python的虛擬環境virtualenvPython
- 使用pipenv代替virtualenv管理python包Python
- python virtualenv虛擬環境搭建Python
- 《簡明 PHP 教程》01 關於 PHPPHP
- Python 工程管理及 virtualenv 的遷移Python
- virtualenv
- python教程(一)·簡介Python
- python正規表示式(簡明版)Python
- python多環境管理一(venv與virtualenv)Python
- 《簡明 PHP 教程》03 第一步PHP
- Pandas之:Pandas簡潔教程
- NumPy之:NumPy簡介教程
- 【Python學習筆記】-虛擬環境virtualenvPython筆記
- 簡單安裝與使用虛擬環境virtualenv
- Python 簡明教程 --- 19,Python 類與物件Python物件
- 從 python 到 Scala 簡明教程Python
- 【Python 筆記】在Windows下使用virtualenv管理python虛擬環境Python筆記Windows
- Linux下使用 virtualenv 虛擬獨立 Python 環境LinuxPython
- Python 簡明教程 --- 23,Python 異常處理Python
- Python 簡明教程 --- 24,Python 檔案讀寫Python
- python極簡教程08:物件的方法Python物件
- Python Flask Web教程001:Flask簡介PythonFlaskWeb
- Python 簡明教程 --- 21,Python 繼承與多型Python繼承多型
- 【譯】Java NIO 簡明教程系列之 NIO 簡介Java
- 【轉】Python之Numpy詳細教程Python
- 一條資料HBase之旅,簡明HBase入門教程開篇