為了安裝Anaconda科學計算環境,控制好python版本,今天上午總算折騰好了。
- 學習python有時希望在python2.7環境下,有時希望在python3.4環境下,該怎麼辦呢?
- Anconda的包也不知道適合在什麼環境下工作?
解決多python環境下,python版本切換的工具–pyenv應運而生。同時,另外一個工具virtualenv則提供了一種功能, 就是將一個目錄建立為一個虛擬的python環境, 這樣的話, 使用者可以建立多個虛擬環境, 每個環境裡面的python版本可以是不同的, 也可以是相同的, 而且環境之間相互獨立。
下面簡要介紹一下安裝的過程:
Unix系統下pyenv安裝與使用:
安裝pyenv
1 2 3 4 5 6 7 8 |
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv #使用 git 把 pyenv 下載到家目錄 $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc #然後需要修改環境變數,使用 Bash Shell 的輸入 $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc $ echo 'eval "$(pyenv init -)"' >> ~/.bashrc #最後新增 pyenv init $ exec $SHELL -l #輸入命令重啟 Shell,然後就可以重啟pyenv |
檢視pyenv可安裝的版本列表
1 |
$ pyenv install --list |
該命令將列出pyenv可以安裝的列表,單單列舉幾個我們們關心的python和anaconda把:
1 2 3 4 5 6 7 |
2.7.8 # Python 2最新版本 3.4.1 # Python 3最新版本 anaconda-2.4.0 # 支援Python 2.6和2.7 anaconda3-2.0.1 # 支援Python 3.3和3.4 |
安裝指定的python版本。
1 |
$ pyenv install 3.4.1 |
該命令會從github上下載python的原始碼安裝,但是,我這裡主要是用來進行科學計算的環境安裝,因此,最後選擇安裝
anaconda-2.4.0(python2.7環境) 和 anaconda3-2.4.0(python3.4環境)。可以選擇都安裝,之後可以使用pyenv進行版本的切換。
注:
- 這裡利用pyenv命令安裝的python版本都安裝在~.pyenv/versions資料夾下,當然,如果你從圖形介面進入Ubuntu的使用者主目錄下可能看不見.pyenv資料夾,這時候,你可以使用
ls -a
看到隱藏的資料夾。 - 使用
pip
安裝的包完成之後,可能需要對資料庫進行更新:
1 |
pyenv rehash |
解除安裝指定的python版本
1 |
pyenv uninstall x.x.x |
python版本檢視
檢視當前已經安裝了的python版本:
1 |
pyenv versions |
輸出結果如下:
1 2 3 4 |
*system (set by /home/michael/.pyenv/version) 2.7.1 3.4.1 anaconda-2.4.0 |
system是指系統的python版本;*表示當前環境所處於的python版本
python版本切換
全域性版本切換:
1 |
pyenv global anaconda-2.4.0 |
全域性切換為anaconda科學計算環境,因為,我現在也不做其他python開發,所以,無需再安裝其他環境了。
檢視現在的python版本:
1 2 3 4 5 |
michael@michael-ThinkCentre-XXXX:~$ pyenv versions system 2.7.1 3.4.1 * anaconda-2.4.0 (set by /home/michael/.pyenv/version) |
有全域性版本切換,當然也會有區域性環境的切換:
在test資料夾下希望切換到python3.4.1:
1 |
pyenv local python3.4.1 |
python virtualenv建立純淨虛擬環境
雖然直接安裝pip安裝virtualenv也行,但是通過pyenv外掛的形式安裝virtualenv的虛擬環境更加方便,因為之後的操作會比較方便。
安裝外掛pyenv-virtualenv
參考文章:http://www.tiny-coder.com/home-article-51.html
pyenv-virtualenv外掛安裝:專案主頁:https://github.com/yyuu/pyenv-virtualenv
pyenv virtualenv是pyenv的外掛,為UNIX系統上的Python virtualenvs提供pyenv virtualenv命令。
1 2 3 |
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile source ~/.bash_profile |
這個外掛將安裝在主資料夾下的.pyenv資料夾中。
建立一個2.7.1的虛擬環境
1 |
pyenv virtualenv 2.7.1 env271 |
再需要建立虛擬環境的資料夾下建立虛擬環境。
這條命令在本機上建立了一個名為env271的python虛擬環境,這個環境的真實目錄位於:~/.pyenv/versions/
注意,命令中的 ‘2.7.1’ 必須是一個安裝前面步驟已經安裝好的python版本, 否則會出錯。
然後我們可以繼續通過 ‘pyenv versions’ 命令來檢視當前的虛擬環境。
切換和使用新的python虛擬環境:
1 |
pyenv activate env271 |
這樣就能切換為這個版本的虛擬環境。通過輸入python
檢視現在版本,可以發現處於虛擬環境下了。
下面基本上你就可以在這個虛擬環境裡面為所欲為了 :) 再也不用擔心繫統路徑被搞亂的問題了
如果要切換回系統環境, 執行這個命令即可
1 |
pyenv deactivate |
那如果要刪除這個虛擬環境呢? 答案簡單而且粗暴,只要直接刪除它所在的目錄就好:
1 |
rm -rf ~/.pyenv/versions/env271/ |
或者解除安裝:
1 |
pyenv uninstall env271 |
Anaconda科學計算包的使用:
使用conda list
檢視anaconda安裝自帶的包:
1 2 3 4 5 6 7 8 9 10 11 |
michael@michael-ThinkCentre-XXXX:~/test$ conda list # packages in environment at /home/michael/.pyenv/versions/anaconda-2.4.0: # abstract-rendering 0.5.1 np110py27_0 alabaster 0.7.6 py27_0 anaconda 2.4.0 np110py27_0 anaconda-client 1.1.0 py27_0 argcomplete 1.0.0 py27_1 astropy 1.0.5 np110py27_1 babel 2.1.1 py27_0 backports.ssl-match-hostname 3.4.0.2 |
注:
- 使用
conda list
命令的環境時python版本切換到anaconda版本下,不然,這個命令無法來查詢。 - 看上面列表就能知道,anaconda的環境下,也是能使用系統
pip
命令安裝的包的!
給anaconda安裝包
1 |
conda install ×××× |
如果需要指定包的版本。
1 |
[package-name]=x.x #指定包的版本 |
多個Python版本並存,尤其是2.x和3.x的並存。
這個通過virtualenv可以做到。Anaconda也正是通過其實現的。下面用conda建立一個名叫python2的版本為python2.7的環境。
1 |
conda create -n python2 python=2.7 |
這樣就會在Anaconda安裝目錄下的envs目錄下建立python2這個目錄。
向其中安裝擴充套件可以:
直接用conda install並用-n指明安裝到的環境,這裡自然就是python2。
像virtualenv那樣,先activate,然後在虛擬環境中安裝。
注:
- 關於
virtualenv
的使用,還需瞭解,可以參考python生態 - 下面的操作,貌似會安裝很多包,謹慎使用。
1 |
conda create -n py34 python=3.4 anaconda |
利用Pycharm的版本切換功能~推薦!很方便!
可以選擇安裝anaconda 不同的版本,然後按照下面操作,切換版本。Windows/Linux下都有Pycharm。
開啟pycharm,開啟preference –> project –> project interpreter–>
Windows系統切換
首先當然是安裝你需要的兩個不同版本的python,我安裝的是2.7和3.4的,兩個版本安裝順序無所謂,但是後面安裝的會變成預設的(因為我是後安裝的python 3.4,它就變成了預設的python)。
然後去python27 資料夾下面把python.exe改名python2.exe,然後就可以在命令列下通過python或者py來呼叫3.x,python2來呼叫2.x。
另外pip的話直接使用 pip2 或者 pip3 就可以了。
參考:
pyenv
- Python多版本共存之pyenv
- yyuu/pyenv-github
- 用pyenv 和 virtualenv 搭建單機多版本python 虛擬開發環境
- lixm/pybooklet-github
- 使用 pyenv 和 Miniconda 管理 Python 科學計算環境
- Python 2.X 3.X 多版本共存
- 一篇文章入門Python生態系統
- 用pyenv和virtualenv搭建python虛擬環境