爲了安裝Anaconda科學計算環境,控制好python版本,今天上午總算折騰好了。html
學習python有時但願在python2.7環境下,有時但願在python3.4環境下,該怎麼辦呢?python
Anconda的包也不知道適合在什麼環境下工做?git
解決多python環境下,python版本切換的工具--pyenv應運而生。同時,另一個工具virtualenv則提供了一種功能, 就是將一個目錄創建爲一個虛擬的python環境, 這樣的話, 用戶能夠創建多個虛擬環境, 每一個環境裏面的python版本能夠是不一樣的, 也能夠是相同的, 並且環境之間相互獨立。
下面簡要介紹一下安裝的過程:github
$ 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 install --list
該命令將列出pyenv能夠安裝的列表,單單列舉幾個我們關心的python和anaconda把:數據庫
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
$ 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
看到隱藏的文件夾。bash
使用pip
安裝的包完成以後,可能須要對數據庫進行更新:babel
pyenv rehash
pyenv uninstall x.x.x
查看當前已經安裝了的python版本:python2.7
pyenv versions
輸出結果以下:工具
*system (set by /home/michael/.pyenv/version) 2.7.1 3.4.1 anaconda-2.4.0
system是指系統的python版本;*表示當前環境所處於的python版本
全局版本切換:
pyenv global anaconda-2.4.0
全局切換爲anaconda科學計算環境,由於,我如今也不作其餘python開發,因此,無需再安裝其餘環境了。
查看如今的python版本:
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:
pyenv local python3.4.1
雖然直接安裝pip安裝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命令。
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile source ~/.bash_profile
這個插件將安裝在主文件夾下的.pyenv文件夾中。
pyenv virtualenv 2.7.1 env271
再須要建立虛擬環境的文件夾下建立虛擬環境。
這條命令在本機上建立了一個名爲env271的python虛擬環境,這個環境的真實目錄位於:~/.pyenv/versions/
注意,命令中的 ‘2.7.1’ 必須是一個安裝前面步驟已經安裝好的python版本, 不然會出錯。
而後咱們能夠繼續經過 ‘pyenv versions’ 命令來查看當前的虛擬環境。
pyenv activate env271
這樣就能切換爲這個版本的虛擬環境。經過輸入python
查看如今版本,能夠發現處於虛擬環境下了。
下面基本上你就能夠在這個虛擬環境裏面隨心所欲了 :) 不再用擔憂系統路徑被搞亂的問題了
若是要切換回系統環境, 運行這個命令便可
pyenv deactivate
那若是要刪除這個虛擬環境呢? 答案簡單並且粗暴,只要直接刪除它所在的目錄就好:
rm -rf ~/.pyenv/versions/env271/
或者卸載:
pyenv uninstall env271
conda list
查看anaconda安裝自帶的包: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 <pip>
注:
使用conda list
命令的環境時python版本切換到anaconda版本下,否則,這個命令沒法來查詢。
看上面列表就能知道,anaconda的環境下,也是能使用系統pip
命令安裝的包的!
conda install ××××
[package-name]=x.x #指定包的版本
這個經過virtualenv能夠作到。Anaconda也正是經過其實現的。下面用conda建立一個名叫python2的版本爲python2.7的環境。
conda create -n python2 python=2.7
這樣就會在Anaconda安裝目錄下的envs目錄下建立python2這個目錄。
向其中安裝擴展能夠:
直接用conda install並用-n指明安裝到的環境,這裏天然就是python2。
像virtualenv那樣,先activate,而後在虛擬環境中安裝。
注:
關於virtualenv
的使用,還需瞭解,能夠參考python生態
下面的操做,貌似會安裝不少包,謹慎使用。
conda create -n py34 python=3.4 anaconda
能夠選擇安裝anaconda 不一樣的版本,而後按照下面操做,切換版本。Windows/Linux下都有Pycharm。
打開pycharm,打開preference --> project --> project interpreter-->
首先固然是安裝你須要的兩個不一樣版本的python,我安裝的是2.7和3.4的,兩個版本安裝順序無所謂,可是後面安裝的會變成默認的(由於我是後安裝的python 3.4,它就變成了默認的python)。
而後去python27 文件夾下面把python.exe更名python2.exe,而後就能夠在命令行下經過python或者py來調用3.x,python2來調用2.x。
另外pip的話直接使用 pip2 或者 pip3 就能夠了。
簡單來講,你的每個項目均可以擁有一個單獨的、孤立的Python環境;你能夠把所需的包安裝到各自孤立的環境中。1
仍是經過pip安裝virutalenv。
sudo pip install virtualenv
安裝完以後,運行下面的命令,爲你的項目建立孤立的Python環境。
$ mkdir my_project_venv $ virtualenv --distribute my_project_venv # The output will something like: New python executable in my_project_venv/bin/python Installing distribute.............................................done. Installing pip.....................done.
那麼這行代碼都作了些什麼呢?你建立了一個名叫my_project_venv的文件夾,用於存儲新的Python環境。--distribute參數告訴virtualenv使用基於distribute包開發的新的、更好的打包系統,而不是基於setuptools的舊系統。你如今只須要知道,--distribute參數將會自動在虛擬環境中安裝pip,免去了手動安裝的麻煩。隨着你的Python編程經驗和知識增長,你會慢慢明白這個過程的具體細節。
經過下面的命令,激活虛擬環境:
$ cd my_project_venv $ source bin/activate
使用source命令啓動activate腳本以後,你的命令行提示符應該會變成這樣:
(my_project_venv)$
虛擬環境的名稱會添加在$提示符的前面。
如今運行下面的命令,關閉虛擬環境:
(my_project_venv)$ deactivate
當你在系統層面安裝virtualenv時(若是激活了虛擬環境,請先關閉),能夠運行下面的命令幫助本身理解。
首先,咱們來看看若是咱們在終端輸入python或者pip,系統會使用哪一個執行文件。
$ which python /usr/bin/python $ which pip /usr/local/bin/pip