如何在virtualenv環境中安裝指定的python版本


指定python版本:virtualenv   -p python執行文件路徑     自定義虛擬環境名稱。如果文件路徑有空格,用引號。

如果不指定python版本,則默認使用環境變量中的python版本

可使用-p PYTHON_EXE選項在創建虛擬環境的時候指定Python版本

1 #創建python2.7虛擬環境
2 virtualenv -p /usr/bin/python2.7 ENV2.7
3 
4 #創建python3.4虛擬環境
5 virtualenv -p /usr/local/bin/python3.4 ENV3.4

這樣可以解決不同項目python版本沖突以及和python庫版本不兼容等問題。

 

 

在開發Python應用程序的時候,系統安裝的Python3只有一個版本:3.4。所有第三方的包都會被pip安裝到Python3的site-packages目錄下。

如果我們要同時開發多個應用程序,那這些應用程序都會共用一個Python,就是安裝在系統的Python 3。如果應用A需要jinja 2.7,而應用B需要jinja 2.6怎么辦?

這種情況下,每個應用可能需要各自擁有一套“獨立”的Python運行環境。virtualenv就是用來為一個應用創建一套“隔離”的Python運行環境。

首先,我們用pip安裝virtualenv:

$ pip3 install virtualenv 

然后,假定我們要開發一個新的項目,需要一套獨立的Python運行環境,可以這么做:

第一步,創建目錄:

  1.  
    Mac:~ michael$ mkdir myproject
  2.  
    Mac:~ michael$ cd myproject/
  3.  
    Mac:myproject michael$
  4.  
     

第二步,創建一個獨立的Python運行環境,命名為venv

  1.  
    Mac:myproject michael$ virtualenv --no-site-packages venv
  2.  
    Using base prefix '/usr/local/.../Python.framework/Versions/3.4'
  3.  
    New python executable in venv/bin/python3.4
  4.  
    Also creating executable in venv/bin/python
  5.  
    Installing setuptools, pip, wheel...done.

命令virtualenv就可以創建一個獨立的Python運行環境,我們還加上了參數--no-site-packages,這樣,已經安裝到系統Python環境中的所有第三方包都不會復制過來,這樣,我們就得到了一個不帶任何第三方包的“干凈”的Python運行環境。

新建的Python環境被放到當前目錄下的venv目錄。有了venv這個Python環境,可以用source進入該環境:

  1.  
    Mac:myproject michael$ source venv/bin/activate
  2.  
    (venv) Mac:myproject michael$
  3.  
     

注意到命令提示符變了,有個(venv)前綴,表示當前環境是一個名為venv的Python環境。

下面正常安裝各種第三方包,並運行python命令:

  1.  
    (venv) Mac:myproject michael$ pip install jinja2
  2.  
    ...
  3.  
    Successfully installed jinja2-2.7.3 markupsafe-0.23
  4.  
    (venv) Mac:myproject michael$ python myapp.py
  5.  
    ...

venv環境下,用pip安裝的包都被安裝到venv這個環境下,系統Python環境不受任何影響。也就是說,venv環境是專門針對myproject這個應用創建的。

退出當前的venv環境,使用deactivate命令:

  1.  
    (venv) Mac:myproject michael$ deactivate
  2.  
    Mac:myproject michael$
  3.  
     

此時就回到了正常的環境,現在pippython均是在系統Python環境下執行。

完全可以針對每個應用創建獨立的Python運行環境,這樣就可以對每個應用的Python環境進行隔離。

virtualenv是如何創建“獨立”的Python運行環境的呢?原理很簡單,就是把系統Python復制一份到virtualenv的環境,用命令source venv/bin/activate進入一個virtualenv環境時,virtualenv會修改相關環境變量,讓命令pythonpip均指向當前的virtualenv環境。

小結

virtualenv為應用提供了隔離的Python運行環境,解決了不同應用間多版本的沖突問題。

指定python版本

 

virtualenv TEST --python=python2.7
現在, flasky 文件夾中就有了一個名為 venv 的子文件夾,它保存一個全新的虛擬環境,其
中有一個私有的 Python 解釋器。在使用這個虛擬環境之前,你需要先將其“激活”。如果
你使用 bash 命令行(Linux Mac OS X 用戶),可以通過下面的命令激活這個虛擬環境:
$ source venv/bin/activate
如果使用微軟 Windows 系統,激活命令是:
$ venv\Scripts\activate
當虛擬環境中的工作完成后,如果你想回到全局 Python 解釋器中,可以在命令行提示符下
輸入 deactivate

 

個人分類: python

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM