Python虛擬環境Virtualenv使用教程

來源:互聯網
上載者:User

   這篇文章主要介紹了Python虛擬環境Virtualenv簡明教程,本文整合了兩篇關於Virtualenv的使用教程,相信大家有通過本文一定可以學會如何使用Virtualenv,需要的朋友可以參考下

  virtualenv用於建立獨立的Python環境,多個Python相互獨立,互不影響,它能夠:

  1. 在沒有許可權的情況下安裝新套件

  2. 不同應用可以使用不同的套件版本

  3. 套件升級不影響其他應用

  安裝

  代碼如下:

  sudo apt-get install python-virtualenv

  使用方法

  [code]

  virtualenv [虛擬環境名稱]

  如,建立**ENV**的虛擬環境

  代碼如下:

  virtualenv ENV

  預設情況下,虛擬環境會依賴系統內容中的site packages,就是說系統中已經安裝好的第三方package也會安裝在虛擬環境中,如果不想依賴這些package,那麼可以加上參數 --no-site-packages建立虛擬環境

   代碼如下:

  virtualenv --no-site-packages [虛擬環境名稱]

  啟動虛擬環境

   代碼如下:

  cd ENV

  source ./bin/activate

  注意此時命令列會多一個(ENV),ENV為虛擬環境名稱,接下來所有模組都只會安裝到該目錄中去。

  退出虛擬環境

   代碼如下:

  deactivate

  在虛擬環境安裝Python套件

  Virtualenv 附帶有pip安裝工具,因此需要安裝的套件可以直接運行:

  代碼如下:

  pip install [套件名稱]

  如果沒有啟動虛擬環境,系統也安裝了pip工具,那麼套件將被安裝在系統內容中,為了避免發生此事,可以在~/.bashrc檔案中加上:

  代碼如下:

  export PIP_REQUIRE_VIRTUALENV=true

  或者讓在執行pip的時候讓系統自動開啟虛擬環境:

   代碼如下:

  export PIP_RESPECT_VIRTUALENV=true

  Virtualenvwrapper

  Virtaulenvwrapper是virtualenv的擴充包,用於更方便管理虛擬環境,它可以做:

  1. 將所有虛擬環境整合在一個目錄下

  2. 管理(新增,刪除,複製)虛擬環境

  3. 切換虛擬環境

  4. ...

  安裝

   代碼如下:

  sudo easy_install virtualenvwrapper

  此時還不能使用virtualenvwrapper,預設virtualenvwrapper安裝在/usr/local/bin下面,實際上你需要運行virtualenvwrapper.sh檔案才行,先別急,開啟這個檔案看看,裡面有安裝步驟,我們照著操作把環境設定好。

  建立目錄用來存放虛擬環境

  代碼如下:

  mkdir $HOME/.virtualenvs

  在~/.bashrc中添加行: export WORKON_HOME=$HOME/.virtualenvs

  在~/.bashrc中添加行:source /usr/local/bin/virtualenvwrapper.sh

  運行: source ~/.bashrc

  此時virtualenvwrapper就可以使用了。

  列出虛擬環境列表

   代碼如下:

  workon

  也可以使用

   代碼如下:

  lsvirtualenv

  建立虛擬環境

  複製代碼 代碼如下:

  mkvirtualenv [虛擬環境名稱]

  啟動/切換虛擬環境

   代碼如下:

  workon [虛擬環境名稱]

  刪除虛擬環境

  代碼如下:

  rmvirtualenv [虛擬環境名稱]

  離開虛擬環境

   代碼如下:

  deactivate

  ------------------------------------------------------------------------------------------------------------------------------------------------------------

  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 list

  pip (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. 參考連結

  virtualenv官方文檔 http://virtualenv.readthedocs.org/en/latest/virtualenv.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.