多版本python控制以及python三方庫管理

jacobssy發表於2018-07-09

在這一篇文章中,主要針對以下問題展開敘述:

  1. 在機器上擁有不同的python版本,怎麼去方便的切換?

  2. 安裝python庫的基本方法有哪些?

  3. 問題待續...

問題一

關於第一個問題,在運用python的過程中,我經歷瞭如下階段:直接安裝python->用anaconda安裝->兩種方法混合著來,結果導致了我出現了一個很嚴重的問題:不知道安裝了神馬?不知道安裝到哪?不知道python引用的是哪裡的包?反正很懵比,最後決定fix掉這個問題,儘量打消自己的疑惑。

有這麼一個例子:在跑相關深度學習模型時,系統安裝的Python3只有一個版本:3.4。所有第三方的包都會被pip3安裝到Python3.5的site-packages目錄下,系統安裝的Python2只有一個版本:2.7,同理所有的包都會被pip安裝到python2.7的site-packages目錄下,關於python3目錄下的dist-packages,區別在於 dist-package/site-package 的解釋 。如果我們要同時開發多個應用程式,那這些應用程式都會共用一個Python,就是安裝在系統的Python3。如果應用A需要jinja 2.7,而應用B需要jinja 2.6怎麼辦?這種情況下,每個應用可能需要各自擁有一套“獨立”的Python執行環境。virtualenv就是用來為一個應用建立一套“隔離”的Python執行環境:enter image description here

  1. pip3 install virtualenv

  2. 然後,假定我們要開發一個新的專案,需要一套獨立的Python執行環境,建立一個project資料夾

  3. virtualenv --no-site-packages [project name] ,命令virtualenv就可以建立一個獨立的Python執行環境,我們還加上了引數--no-site-packages,這樣,已經安裝到系統Python環境中的所有第三方包都不會複製過來,這樣,我們就得到了一個不帶任何第三方包的“乾淨”的Python執行環境

  4. source [project name]/bin/activate enter image description here

    注意pip pip3 安裝的是同一個目錄,而sudo pip安裝的是dist目錄。

  5. 退出當前的環境,使用deactivate命令

    問題二

安裝python除了常見的pip安裝,easy install 安裝之外,還有如下其它的方法:

  1. Python很多第三方庫都是開源的,我們可以從GitHub或PyPI上下載原始碼,解壓後,進入資料夾,找到setup.py檔案,輸入命令安裝:python setup.py install

  2. Anaconda是一個用於科學計算的Python發行版(安裝cuda,cudnn這些深度學習計算框架時,最好不用conda,做一些python機器學習方面的資料分析應用可以嘗試conda)支援 Linux, Mac, Windows系統,提供了包管理與環境管理的功能,可以很方便地解決多版本python並存、切換以及各種第三方包安裝問題。Anaconda安裝包和pip類似:conda install requests

  3. whl檔案安裝,pip install [packageName].whl

相關文章