Python 隔離沙箱 virtualenv


  我認為Python一個很大的優勢就是官方網站給出的眾多的軟件包,幾乎能幫助你實現你想要的任何功能,避免了重復開發的勞動,但是零零碎碎的包,以及每個包的各種各樣的版本管理就成為了一個比較棘手的問題,因此有了virtuallenv的出現,安裝好這個以后,就相當於有了一個獨立的內存空間,舉例來講,你有了一個名稱為mysite_1的工程,使用的Python2.7的版本,另一個工程是mysite_2,使用的是Python3.0的版本,由於Python版本彼此的兼容性差異,常規的方法是通過配置文件,讓工程mysite_1讀取Python2.7的目錄,mysite_2讀取Python3.0的目錄。現在有了一個更簡單的方法就是通過隔離沙箱這虛擬的環境,可以實現各個工程的彼此獨立。

 

下面介紹一下virtualenv在Windows平台下的安裝和使用。

 

(1)官方網站下載https://virtualenv.pypa.io/en/latest/

我通常是使用pypm進行下載:

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

pypm install virtualenv -g

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

-g 的意思是安裝在Python的默認全局目錄下,一般是Lib的site-packages目錄下面,我們也可以另外制定virtualenv的安裝目錄,通過 -E DIR 或者 --virtualenv = Dir 進行設置,但是推薦將virtualenv安裝在site-packages目錄下面。

 

(例如,pypm -E C:\mysite_1 install -r config\requirements.pip 意思就是指將requirement目錄下的所有的文件都下載並安裝到C盤下的mysite_1目錄下)

 

(2)創建虛擬目錄

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

進入你想要創建的目錄下面,例如C盤

cd C:\

virtualenv mysite_1

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

此時,在C盤下可以發現新生成的mysite_1文件夾,里面包含三個文件,分別為

mysite_1 --------*Include

                 --------*Lib

                 --------*Scripts

(3)啟動

打開mysite_1下的Scripts文件夾,

>cd mysite_1

C:\mysite_1

>cd Script

C:\mysite_1\Script>activate

(mysite_1)C:\mysite_1\Script

發現前面多了一個你創建的工程目錄名,表明此時已經進入到虛擬環境。

我們可以用pypm 安裝工具來進行安裝,也可以利用pip工具進行安裝,但是推薦使用pip。原因是pip的功能更加強大。

(a )使用pypm 安裝的方法

pypm -E C:\mysite_1 install -r config\requirement.pip

(b)使用pip 安裝方法

pip  install -r config\requirement.pip

需要注意的是:對於(a),我們指定了安裝的絕對路徑,因此,可以在沒有進入隔離沙箱環境下進行安裝,但是對於(b)我們必須在進入隔離沙箱的情況下使用。

另外,window下我們還可以將.pip中的文件下載下來,解壓后python setup.py install 進行安裝,同樣要在進入隔離沙箱的情況下使用。

詳細的關於pip和pypm的使用方法可以查閱其詳細說明文檔。

(4)退出

只需要執行deactivate就退出了虛擬環境

 


我們從DjangoPackages下載一個工程在實驗一下虛擬目錄的使用

http://mysmile.readthedocs.org/en/latest/Getting%20started/quick_install_guide.html

 

(1)

 

[注意]The --system-site-packages Option

If you build with virtualenv --system-site-packages ENV, your virtual environment will inherit packages from /usr/lib/python2.7/site-packages (or wherever your global site-packages directory is).

This can be used if you have control over the global site-packages directory, and you want to depend on the packages there. If you want isolation from the global system, do not use this flag。


 

將下載的mysmile文件解壓到虛擬沙箱中,文件結構如下:

mysite_1 --------*Include

              --------*Lib

              --------*Scripts

     --------*mysmile-0.5.1

 

進入mysmile-0.5.1。可以看到manage.py文件,啟動:python manage.py runserver.在url中輸入http://127.0.0.1:8000/admin即可以看到下面啟動的網頁:

 
 

參考:

http://mengzhuo.org/blog/virtualenv%E5%92%8Cpip%E5%B0%8F%E6%8E%A2.html

 


免責聲明!

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



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