久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Virtualenv: 一個Python環(huán)境管理工具

 亞典波羅的收藏 2012-07-09

Virtualenv: 一個Python環(huán)境管理工具

Posted on November 2, 2010 and tagged as django. http://c2./blog/django/virtualenv.html

virtualenv是一個python工具. 它可以創(chuàng)建一個獨立的python環(huán)境. 這樣做的好處是你的python程序運行在這個環(huán)境里, 不受其它的 python library的版本問題影響. 比如說你想用最新的Django 1.3開發(fā)新的項目, 但是現(xiàn)有的Pinax 0.7只支持到Django 1.1. 傳統(tǒng)的做法是在環(huán)境變量PYTHONPATH里明確地規(guī)定程序包的目錄. 這么做沒什么不好, 而且很清晰. 問題出在以后如果你有需要寫別的程序時調(diào)用了新的版本, 或者是別的程序員升級了包, 很容易把你的程序也搞垮.

其實我對virtualenv一開始沒什么興趣. 為什么呢? 首先我認為virtualenv也不是完美的解決方案, 它只是一個以空間換時間的方法. 可能是受了ant/maven的影響, 我覺得那樣更省事一些. 更主要的原因是我很懶, 又不肯學(xué)新的東西. 因為學(xué)新的東西是要時間的, 學(xué)了一樣的新知識后還沒怎么用更新的東西就又出來了. 這不是學(xué)了白學(xué)嘛. 所以我把這些工具分成兩類. 一種是可以解決新的問題, 另一種是改進當前的解決方法. 我對前一種的態(tài)度是沒碰到那類問題就不仔細學(xué)習(xí), 了解一下就好. 對后一種就要小心一些, 因為這類方法往往有可能存在過度設(shè)計的問題, 也就是說理論上它有可能解決得更好一些, 但學(xué)習(xí)的時間成本更高, 復(fù)雜度也更高, 有可能會得不償失. 所以我會先看看它是不是足夠簡單, 否則就不學(xué).

virtualenv充分利用了pip. 對于pip, 我以前讀James Bennett的文章 "On packaging" 時就不大以為然. 雖然我一直特尊敬James, 他的博客曾是我學(xué)Django的最大幫助, 但這篇文章我覺得只是個人喜好. pip和setuptools相比帶來的好處實在有限.

但是virtualenv比pip更進了一步. 它的定位相當于Java里的Maven 和最新的ant. 我以前對版本問題不是很在意, 因為我自己只是一個人寫程序, 也一直用最新的程序版本. 但是最近的Django1.2出來以后出現(xiàn)了版本不兼容的問題, 而且我用了不少別人的庫, 這些程序也出現(xiàn)了版本不兼容的問題. 我在開發(fā)機器上測試新的東西出現(xiàn)問題還能接受, 但是到了production環(huán)境上就不行了. 全面升級時總是麻煩事. 所以我覺得現(xiàn)在是到了用virtualenv的時候了.

Installation

要是你的Linux repository已經(jīng)有了virtualenv, 那當然可以直接安裝, 例如Ubuntu 10.04,

sudo aptitude install python-virtualenv

要是沒有, 如Ubuntu 8.04,

sudo easy_install virtualenv

Installing virtualenv script to /usr/bin
Installed /usr/lib/python2.5/site-packages/virtualenv-1.5.1-py2.5.egg

如果在share hosting上, 要麻煩一些:

1. #need to setup python in your own folder
under your home folder, 
mkdir -p python2.6/{bin,include,share,lib/python2.6/site-packages}
2. # get virtualenv package
wget http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.6.4.tar.gz
tar zxvf virtualenv-1.6.4.tar.gz 
cd virtualenv-1.6.4
/usr/local/bin/python2.6 setup.py install \
  --prefix=/home/your_user_name/python2.6/

Setup

創(chuàng)建一個工作環(huán)境mysite

virtualenv mysite
cd mysite
source bin/activate

這時你就發(fā)現(xiàn)多了一個環(huán)境變量VIRTUAL_ENV. virtualenv還修改了$PATH, 增加了bin/python, 這樣以后的pythonpath就優(yōu)先指定到當前目錄環(huán)境里. virtualenv還在ENV/bin里安裝了pip. 以后再安裝新的python包就都裝到這下面了, 如pip install html5lib.

清除工作環(huán)境

virtualenv --clear mysite

相關(guān)工具

virtualenvwrapper 的作用是管理多個不同的虛擬環(huán)境, 讓創(chuàng)建/刪除/拷貝/切換不同工作環(huán)境更加方便一些.

  • installation: sudo pip install virtualenvwrapper
  • virtualenvwrapper doc
  • quick tips:

    export WORKON_HOME=~/sites
    source /usr/local/bin/virtualenvwrapper.sh
    mkvirtualenv env1
    mkvirtualenv env2
    workon env1
    echo $VIRTUAL_ENV
    

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多