分享Python多版本共存管理工具之pyenv方法

來源:互聯網
上載者:User

Table of Contents

[TOC]

經常遇到這樣的情況:

系統內建的Python是2.6,自己需要Python 2.7中的某些特性;

系統內建的Python是2.x,自己需要Python 3.x;

此時需要在系統中安裝多個Python,但又不能影響系統內建的Python,即需要實現Python的多版本共存。pyenv就是這樣一個Python版本管理器。

1. 安裝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

2. 安裝Python

查看可安裝的版本

$ pyenv install --list

該命令會列出可以用pyenv安裝的Python版本,僅列舉幾個:

2.7.8 # Python 2最新版本
3.4.1 # Python 3最新版本
anaconda-2.0.1 # 支援Python 2.6和2.7
anaconda3-2.0.1 # 支援Python 3.3和3.4
其中形如x.x.x這樣的只有版本號碼的為Python官方版本,其他的形如xxxxx-x.x.x這種既有名稱又有版本後的屬於“衍生版”或發行版。

2.1 安裝Python的依賴包

在安裝Python時需要首先安裝其依賴的其他軟體包,已知的一些需要預先安裝的庫如下。

在CentOS/RHEL/Fedora下:

sudo yum install readline readline-devel readline-staticsudo yum install openssl openssl-devel openssl-staticsudo yum install sqlite-develsudo yum install bzip2-devel bzip2-libs

2.2 安裝指定版本

使用如下命令即可安裝python 3.4.1:

$ pyenv install 3.4.1 -v

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

對於科研環境,更推薦安裝專為科學計算準備的Anaconda發行版,pyenv install anaconda-2.1.0安裝2.x版本,pyenv install anaconda3-2.1.0安裝3.x版本;

Anacoda很大,用pyenv下載會比較慢,可以自己到Anaconda官方網站下載,並將下載得到的檔案放在~/.pyenv/cache目錄下,則pyenv不會重複下載。

2.3 更新資料庫

安裝完成之後需要對資料庫進行更新:

$ pyenv rehash

查看當前已安裝的python版本

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

其中的星號表示當前正在使用的是系統內建的python。

2.4 設定全域的python版本

$ pyenv global 3.4.1$ pyenv versionssystem* 3.4.1 (set by /home/seisman/.pyenv/version)

其中的星號表示當前正在使用的是系統內建的python。

2.4 設定全域的python版本

$ pyenv global 3.4.1$ pyenv versionssystem* 3.4.1 (set by /home/seisman/.pyenv/version)

當前全域的python版本已經變成了3.4.1。也可以使用pyenv local或pyenv shell臨時改變python版本。

2.5 確認python版本

$ pythonPython 3.4.1 (default, Sep 10 2014, 17:10:18)[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linuxType "help", "copyright", "credits" or "license" for more information.>>>

3.0 使用python

輸入python即可使用新版本的python;
系統內建的指令碼會以/usr/bin/python的方式直接調用老版本的python,因而不會對系統指令碼產生影響;
使用pip安裝第三方模組時會安裝到~/.pyenv/versions/3.4.1下,不會和系統模組發生衝突。
使用pip安裝模組後,可能需要執行pyenv rehash更新資料庫;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.