Python version control on Mac

MAC INSTALL PYTHON AND PACKAGE MANAGER

? Mac 系統(tǒng)10.x 之后會(huì)自帶Python欲虚,它適合用于學(xué)習(xí),不適合用來開發(fā),因?yàn)橐坏┫到y(tǒng)升級(jí)就有可能Python版本就會(huì)發(fā)生改變俯在;Python是和系統(tǒng)綁定的,Homebrew是包管理器娃惯,可以永遠(yuǎn)獲取最新版本的Python和pip以及Setuptools;改變OS X的Python版本有可能會(huì)觸發(fā)系統(tǒng)隱藏的bug肥败。

? brew -> xcode -> python/python3 -> virtualenv

? brew install python

? brew install python3

? pip install virtualenv

? mkdir -p ~/Projects ~/Virtualenv

‘將pip限制在虛擬環(huán)境中趾浅,這樣virtualenv默認(rèn)使用pip管理包,且只能使用在激活環(huán)境中使用馒稍,而不會(huì)影響系統(tǒng)python的環(huán)境’

? vim ~/.bash_profile

? Add new one line:export PIP_REQUIRE_VIRTUALENV=true

? source ~/.bash_profile

? cd ~/Virtualenvs

‘創(chuàng)建兩個(gè)版本的項(xiàng)目皿哨,分別使用的時(shí)python2和python3’

? virtualenv foobar

? virtualenv -p python3 foobar-py3

'升級(jí)全局到包'

? vim ~/.bashrc

Add one new line: gpip(){ PIP_REQUIRE_VIRTUALENV="" pip "$@" }

? gpip install --upgrade pip setuptools wheel virtualenv


? 應(yīng)該安裝類似于Setuptools之類用來安裝第三方的Python類庫。

安裝Python需要GCC的支持纽谒,GCC用XCode下載证膨。

Mac OSX 缺一個(gè)包管理器,Homebrew能彌補(bǔ)這個(gè)空白鼓黔。

安裝 Homebrew 可以去 官網(wǎng) 首頁獲取安裝命令央勒,一行即可完成。 brew install python

Homebrew 會(huì)替你安裝 Setuptools 和 pip 澳化,Setuptools 可以用 easy_install 替你下載和安裝網(wǎng)絡(luò)上的相應(yīng)的Python包崔步,也可以很簡單的通過網(wǎng)絡(luò)安裝兼容Python版本的包。pip 是更容易安裝和管理Python包的工具缎谷,相比于 easy_install ,更推薦這個(gè)pip井濒。 在某些方面它比 easy_install 更好,且積極維護(hù)著列林。

虛擬環(huán)境是通過創(chuàng)建虛擬的Python環(huán)境瑞你,讓在不同位置的不同項(xiàng)目保持獨(dú)立性的工具。

?

? virtualenv 是能創(chuàng)建分離的Python環(huán)境的工具希痴。virtualenv創(chuàng)建一個(gè)文件夾來包含Python項(xiàng)目執(zhí)行所需要的包者甲,安裝 pip install virtualenv

virtual 基本用法

? 1. 為項(xiàng)目創(chuàng)建虛擬的環(huán)境

? cd my_project_folder

? virtualenv venv OR virtualenv -p /usr/bin/python2.7 venv

? 'virtualenv venv' 將在當(dāng)前目錄創(chuàng)建包含Python可執(zhí)行文件的文件夾,和一份pip類庫的復(fù)制润梯,這樣可以用pip來安裝其它的包过牙。virtualenv的環(huán)境名可以是任意的,這里是env纺铭;不指定名字將會(huì)把文件放在當(dāng)前所在的目錄,用 -p 可以指定python 環(huán)境寇钉。

? 使用 --no-site-packages 該參數(shù),系統(tǒng)全局安裝的包將不會(huì)被帶入到新建的環(huán)境中舶赔,該參數(shù)走virtualenv 1.7版本之后是勾選的扫倡。

? 2.激活該環(huán)境

? source venv/bin/activate

? 激活環(huán)境成功的話,bash提示符就會(huì)發(fā)生改變,那么現(xiàn)在用pip安裝的包都將在這個(gè)env環(huán)境中撵溃。

? pip install requests

? 3.關(guān)閉環(huán)境

? deactivate

? 這將會(huì)將你帶回到系統(tǒng)默認(rèn)的Python解釋器疚鲤。

那么刪除虛擬環(huán)境,只要?jiǎng)h除它的文件夾就好缘挑。

Mac OS中主要有三種包管理工具:MacPorts集歇,Homebrew,F(xiàn)ink语淘。

1. MacPorts:因?yàn)?Mac OS 源自 BSD诲宇,因此將 BSD 中的 Port 移植到 OS 成為 MacPorts 就一點(diǎn)不奇怪。MacPorts 會(huì)獨(dú)立于 OS 自建一套倉庫樹惶翻,OS 的包執(zhí)行目錄為 /usr/local姑蓝,而 MacPorts 的包執(zhí)行目錄為 /opt/local。MacPorts 盡量不影響系統(tǒng)現(xiàn)有程序吕粗,自然也就盡量少復(fù)用系統(tǒng)已有程序纺荧。MacPorts 安裝包的過程是下載該程序的所有源文件及其依賴包,然后在本地進(jìn)行 Build 生成最終的可執(zhí)行文件颅筋。這樣做的好處是在系統(tǒng)中存在一套獨(dú)立的生態(tài)環(huán)境宙暇,從而不影響系統(tǒng)自身的生態(tài)環(huán)境,缺點(diǎn)就是浪費(fèi)了系統(tǒng)自身的生態(tài)資源议泵。

2. Homebrew:在 Lion 之后興起的包管理工具客给,工作方式與 MacPorts 類似,下載源代碼然后本地 Build肢簿。不同之處在于 Homebrew 采取與 MacPorts 截然相反的態(tài)度靶剑,對(duì)系統(tǒng)資源是最大程度的利用,因此可以說 Homebrew 是直接對(duì)現(xiàn)有系統(tǒng)生態(tài)環(huán)境進(jìn)行修改池充,所有包也是直接安裝到現(xiàn)有的生態(tài)環(huán)境中桩引,這樣做的好處是節(jié)約了系統(tǒng)資源,但缺點(diǎn)是每一次操作都是直接對(duì)系統(tǒng)進(jìn)行修改收夸,嚴(yán)重依賴和影響現(xiàn)有系統(tǒng)坑匠。

3. Fink:基于 Debian 的 packaging tools,它下載的都是已編譯后的二進(jìn)制可執(zhí)行文件(或源碼)卧惜,因此無需本地編譯厘灼,即下即用。缺點(diǎn)是所有包都需要 Fink 預(yù)先編譯咽瓷,導(dǎo)致更新速度跟不上设凹。


python version manager ??? virtualenv pyenv vagrant Anaconda pip Anaconda

Pythonbrew: Not maintain anymor.

Pyenv:


?```

    brew update

    brew install pyenv

    pyenv --help

    pyenv commands

    brew install pyenv-virtualenv

    pyenv install --list

    pyenv install x.x.x     #install python with version number

    pyenv versions      #list current python version

    pyenv global system     #checkout the python to system  version

    pyenv virtualenv x.x.x myvenv   #create python version with named "myenv"

    pyenv virtualenvs       #show python virtualenv

    pyenv shell myvenv  #active python virtualenv

Virtualenv 是一個(gè)虛擬環(huán)境程序,可以把開發(fā)環(huán)境隔離茅姜∩林欤基本思想是建立不同的環(huán)境目錄,其中裝有獨(dú)立的各類包,甚至也可以是獨(dú)立的不同版本python程序奋姿。

ref:

VirtualEnv 和Pip 構(gòu)建Python的虛擬工作環(huán)境 -v2

為MAC打造舒適的Python開發(fā)環(huán)境

Python Development Environment on MacOS X Yosemite 10.10

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锄开,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子称诗,更是在濱河造成了極大的恐慌萍悴,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寓免,死亡現(xiàn)場離奇詭異退腥,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)再榄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來享潜,“玉大人困鸥,你說我怎么就攤上這事〗0矗” “怎么了疾就?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長艺蝴。 經(jīng)常有香客問我猬腰,道長,這世上最難降的妖魔是什么猜敢? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任姑荷,我火速辦了婚禮,結(jié)果婚禮上缩擂,老公的妹妹穿的比我還像新娘鼠冕。我一直安慰自己,他們只是感情好胯盯,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布懈费。 她就那樣靜靜地躺著,像睡著了一般博脑。 火紅的嫁衣襯著肌膚如雪憎乙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天叉趣,我揣著相機(jī)與錄音泞边,去河邊找鬼。 笑死疗杉,一個(gè)胖子當(dāng)著我的面吹牛繁堡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼椭蹄,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼闻牡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起绳矩,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤罩润,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后翼馆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體割以,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年应媚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了严沥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡中姜,死狀恐怖消玄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情丢胚,我是刑警寧澤翩瓜,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站携龟,受9級(jí)特大地震影響兔跌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜峡蟋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一坟桅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蕊蝗,春花似錦桦卒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至碌更,卻和暖如春裕偿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背痛单。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國打工嘿棘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人旭绒。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓鸟妙,卻偏偏與公主長得像焦人,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子重父,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1. 介紹 首先讓我們來看看TensorFlow花椭! 但是在我們開始之前,我們先來看看Python API中的Ten...
    JasonJe閱讀 11,721評(píng)論 1 32
  • 本文為《爬著學(xué)Python》系列第十三篇文章房午。 Python能在這幾年火起來矿辽,靠的不是網(wǎng)上一大片的爬蟲和服務(wù)器后端...
    SyPy閱讀 4,794評(píng)論 0 5
  • 5.2 Mac OS安裝說明 譯者:Python 文檔協(xié)作翻譯小組,原文:Mac OS Installation ...
    布客飛龍閱讀 1,936評(píng)論 0 6
  • footer定位底部起初我的打算是用絕對(duì)定位,脫離文本流折柠,參照瀏覽器左上角定位宾娜,設(shè)置TRBL作為原點(diǎn)此時(shí)我的代碼如...
    DecadeHeart閱讀 8,745評(píng)論 0 0
  • 今天,大風(fēng)吹扇售,心要碎前塔,莫名的難過!找了一席安靜之地缘眶,專門用簡書給andy發(fā)了一篇之前課程的總結(jié),開頭寫到如果能幫到...
    q子在川上y閱讀 245評(píng)論 0 1