Python多版本切換工具-Pyenv\virtualenv及Anaconda科學計算環境的配置

https://segmentfault.com/a/1190000004020387?utm_source=tuicool&utm_medium=referral


爲了安裝Anaconda科學計算環境,控制好python版本,今天上午總算折騰好了。

  • 學習python有時希望在python2.7環境下,有時希望在python3.4環境下,該怎麼辦呢?

  • Anconda的包也不知道適合在什麼環境下工作?

解決多python環境下,python版本切換的工具--pyenv應運而生。同時,另外一個工具virtualenv則提供了一種功能, 就是將一個目錄建立爲一個虛擬的python環境, 這樣的話, 用戶可以建立多個虛擬環境, 每個環境裏面的python版本可以是不同的, 也可以是相同的, 而且環境之間相互獨立。
下面簡要介紹一下安裝的過程:

Unix系統下pyenv安裝與使用:

安裝pyenv

$ 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可安裝的版本列表

$ 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

安裝指定的python版本。

$ 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安裝的包完成之後,可能需要對數據庫進行更新:

pyenv rehash

卸載指定的python版本

pyenv uninstall x.x.x

python版本查看

查看當前已經安裝了的python版本:

pyenv versions

輸出結果如下:

*system (set by /home/michael/.pyenv/version)
2.7.1
3.4.1
anaconda-2.4.0

system是指系統的python版本;*表示當前環境所處於的python版本


網絡問題

如anaconda之類大容量的版本,由於網絡的問題,總是連接中斷,安裝失敗。此時可以先從官方網站下載安裝包,然後放在~/.pyenv/cache文件夾中,然後在pyenv install 此版本,pyenv會自動先從此文件夾中搜索



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

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命令。

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的虛擬環境

pyenv virtualenv 2.7.1 env271

再需要創建虛擬環境的文件夾下創建虛擬環境。

這條命令在本機上創建了一個名爲env271的python虛擬環境,這個環境的真實目錄位於:~/.pyenv/versions/

注意,命令中的 ‘2.7.1’ 必須是一個安裝前面步驟已經安裝好的python版本, 否則會出錯。

然後我們可以繼續通過 ‘pyenv versions’ 命令來查看當前的虛擬環境。

切換和使用新的python虛擬環境:

pyenv activate env271

這樣就能切換爲這個版本的虛擬環境。通過輸入python查看現在版本,可以發現處於虛擬環境下了。
下面基本上你就可以在這個虛擬環境裏面爲所欲爲了 :) 再也不用擔心繫統路徑被搞亂的問題了
如果要切換回系統環境, 運行這個命令即可

pyenv deactivate

那如果要刪除這個虛擬環境呢? 答案簡單而且粗暴,只要直接刪除它所在的目錄就好:

rm -rf ~/.pyenv/versions/env271/

或者卸載:

pyenv uninstall env271

Anaconda科學計算包的使用:

使用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命令安裝的包的!

給anaconda安裝包

conda install ××××

如果需要指定包的版本。

[package-name]=x.x   #指定包的版本

多個Python版本並存,尤其是2.x和3.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

利用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 就可以了。

virtualenv

簡單來說,你的每一個項目都可以擁有一個單獨的、孤立的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

參考:

pyenv

  1. Python多版本共存之pyenv

  2. yyuu/pyenv-github

  3. 用pyenv 和 virtualenv 搭建單機多版本python 虛擬開發環境

  4. lixm/pybooklet-github

  5. 使用 pyenv 和 Miniconda 管理 Python 科學計算環境

  6. Python 2.X 3.X 多版本共存

  7. 一篇文章入門Python生態系統

  8. 用pyenv和virtualenv搭建python虛擬環境

Anaconda

  1. DOWNLOAD ANACONDA NOW

  2. P]ython科學計算利器——Anaconda

  3. Python科學計算髮行版—Anaconda


  1. 一篇文章入門Python生態系統

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章