為什麼說 virtualenv、fabric 和 pip 是 pythoneer 的三大神器?

來源:互聯網
上載者:User

回複內容:

這三個對Python項目部署非常便利。
1. virtualenv 用來建立一個虛擬python環境,一個專屬於項目的python環境。用virtualenv 來保持一個乾淨的環境非常有用。
2. pip 用來解決項目依賴問題。將項目所有依賴的第三方庫寫在一個requirements.txt 中用pip 大量安裝。一般和virtualenv 配合使用,將所有包安裝在virtualenv 的環境中。
3. fabric 用來自動化遠程部署項目,非常的方便。可以根據需要在本地、遠程依次執行一系列shell 命令、程式等。比如從程式碼程式庫更新代碼,執行資料移轉指令碼,重啟服務進程,完成自動化的部署。 easy_install 和 setuptools 提供的模組依賴機制同樣好用, 個人來說不是很喜歡 pip.
virtualenv 類似的是更強大的 zc.buildout , 支援通過設定檔產生環境, 換個python版本都沒問題, 通過 buildout 外掛程式, 自動下載個apache並編譯支援python都不是問題. 論功能, zc.buildout 更強. ansible 呢…“神器”這個詞是編程世界的“偽言Flag”我不贊同, 相比virtualenv和pip, buildout才是真正的好東西, 不論是虛擬python環境的乾淨程度, 用法的方便度, 對安裝包的可定製/操控度, 還是對批量部署的支援都是遠超前者. 可以說 virtualenv + pip 還停留在手工時代, 而buildout 已經進入了機械時代.

至於 fabric, 的確是個好工具 簡簡單單一個 fabfile 就可以實現代碼的批量部署和管理, 並且也可以選擇不用它的fab命令而自己基於它的api進行深度開發, 唯一的弱點就是對ssh的依賴略重了吧.

另外推薦另一個好工具 supervisor. 出處在哪,我不贊同我推薦以下三個神器 sqlalchemy, twisted, gevent正好這學期在學用到python的課。fabric沒用過,pip是方便了一些python package的安裝管理過程,virtualenv提供了一個乾淨的virtual environment。
pip和virtualenv的確都是挺好用的,對於我學的那門課,這兩個是必須要用到的,否則涉及到引用python package和涉及到切換環境的那些作業都基本沒辦法做。 但是至於他們是不是神器我就不知道了。
感謝樓上的回答,我最近就去試試看樓上提到的這些python工具。 這學期接觸了python,覺得真是好東西,個人覺得比java好用多了目前沒有用過fabric,先談談virtualenv和pip

pip和java中的maven類似(只有依賴管理,沒有構建功能),可以直接引用別的項目,也不用自己在項目裡附帶別人的代碼。requirements.txt也是非常重要的東西,只需要pip install -r requirements.txt 就好了。

virtualenv可以建立一個獨立的Python環境,單獨的應用使用單獨的環境。這樣,部署應用的時候只需要新建立一個virtualenv,然後pip install -r requirements.txt,撤銷應用的時候只需要刪除virtuenv就好。避免了在全域環境安裝了一大堆,管理困難,而且還有可能衝突。(當然,虛擬機器、容器也可以達到這個效果,但是代價太大)


2016-02-17更新

fabric就是讓一些經常執行的操作、指令碼自動化、統一化。減少了人為犯錯的機率。
當然,現在好像ansible更加流行。 只用過virtualenv,這個可以為每個Python應用程式類比出自己的庫環境。
非常適合批量部署,不需要考慮是否和別的應用程式環境衝突。
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.