1. 程式人生 > >ubuntu下如何安裝多版本的python之python3.6.1安裝numpy,scipy等依賴包

ubuntu下如何安裝多版本的python之python3.6.1安裝numpy,scipy等依賴包

  最近需要搭建Pytorch框架,復現某個工程,需要在python3.6版本下實現。由於ubuntu14.04系統預設安裝的是python2.7.6和python3.4版本,在這個地方被坑了無數次,主要是安裝了python後需要安裝python3.6的依賴包,用老方法裝依賴包總是裝到系統預設的python2.7.6下面。折騰了一晚上,坑死人了,最後還重灌了一次系統。真是應了那句話不踩坑不瞭解事實真相。最後發現ubuntu下面可以同時安裝過個版本pyhton,通過pyenv來管理。
再安裝python之前,我們首先要安裝這個管理工具pyenv:

$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
$ echo
'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc $ echo 'eval "$(pyenv init -)"' >> ~/.bashrc $ exec $SHELL -l

  我們還可以通過下面這個命令來檢視可以安裝的python版本:

$ pyenv install --list

如果我們確定要安裝python3.6.1的話,接下來我們就可以安裝python了,但是再安裝之前,我們必須要安裝python所需要的依賴包,這個必須要安裝,安裝會失敗的:

$ sudo apt-get install libc6-dev gcc
$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm

上面的依賴包搞定之後,我們就可以安裝python了:

$ pyenv install 3.6.1 -v

  該命令會從github上下載python的原始碼,並解壓到/tmp目錄下,然後在/tmp中執行編譯工作。若依賴包沒有安裝,則會出現編譯錯誤,需要在安裝依賴包滯後重新執行該命令。

安裝完成之後,需要使用如下命令對資料庫進行更新:

$ pyenv rehash

檢視當前已經安裝的python版本

$ pyenv versions
* system (set by /home/seisman/.pyenv/version)
3.6.1

  其中星號代表是當前系統正在使用的python版本是系統自帶的。

設定全域性的python版本

$ pyenv global 3.6.1
$ pyenv versions
system
* 3.6.1 (set by /home/seisman/.pyenv/version)

  從上面,我們可以看出來當前的python版本已經變為了3.4.3。也可以使用pyenv local或pyenv shell臨時改變python的版本。

確認python版本

$ python
Python 3.6.1 (default, Apr  1 2015, 19:10:43) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.

  注意事項:


  (1) 輸入python即可使用新版的python;
  (2) 系統自帶的指令碼會以/usr/bin/python的方式直接呼叫老版本的python,因而不會對系統指令碼產生影響;
  
  這裡就是為不同的版本的python安裝依賴包,由於我是安裝的是python3.6.1版本,所以需要安裝pip3,如何安裝pip3,網上一搜有很多:

$ sudo apt-get install python3-pip

   (3) 使用pip安裝第三方模組時會安裝到~/.pyenv/versions/3.4.3下,不會和系統模組發生衝突;
   (4) 使用pip安裝模組後,可能需要執行pyenv rehash更新資料庫。


   這裡我是安裝python3.6.1版本,為python3.6.1安裝第三方的依賴包需要通pip3來安裝,例如:
  

 $ pip3 install numpy
 $ pip3 install scipy