Python多版本共存之pyenv

2021-09-20 20:06:42 字數 2765 閱讀 1721

經常遇到這樣的情況:

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

1

2

3

4

5

$ gitclonegit:~/.pyenv

$echo'export pyenv_root="$home/.pyenv"'>> ~/.bashrc

$echo'export path="$pyenv_root/bin:$path"'>> ~/.bashrc

$echo'eval "$(pyenv init -)"'>> ~/.bashrc

$exec$shell-l

1

$ pyenv install --list

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

1

2

3

4

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官方版本,其他的形如 ***xx-x.x.x 這種既有名稱又有版本後的屬於「衍生版」或發行版。

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

在centos/rhel/fedora下:

1

2

3

4

sudo yum install readline readline-devel readline-static

sudo yum install openssl openssl-devel openssl-static

sudo yum install sqlite-devel

sudo yum install bzip2-devel bzip2-libs

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

1

$ pyenv install 3.4.1 -v

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

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

1

$ pyenv rehash

1

2

$ pyenv versions

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

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

1

2

3

4

$ pyenvglobal3.4.1

$ pyenv versions

system

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

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

1

2

3

4

$ python

python 3.4.1 (default, sep 10 2014, 17:10:18)[gcc 4.4.7 20120313 (red hat 4.4.7-1)] on linux

type"help",,"credits"or"license"formore information.

>>>

python多版本共存之pyenv

也許你開發中也會遇到需要不同版本的python,此時需要在系統中安裝多個,但又不能影響系統自帶的 python,即需要實現 python 的多版本共存。pyenv 就是這樣乙個 python 版本管理器 pyenv官方 git clone git pyenv echo export pyenv ro...

Python 多版本共存之 pyenv

經常遇到這樣的情況 系統自帶的 python 是 2.6,自己需要 python 2.7 中的某些特性 系統自帶的 python 是 2.x,自己需要 python 3.x 此時需要在系統中安裝多個 python,但又不能影響系統自帶的 python,即需要實現 python 的多版本共存。pyen...

多版本python共存

當不同版本python之間相互不能相容時,可以使用virtualenv建立不同版本python的虛擬環境 當沒有指定python直譯器時 如下 p 即為指定的python版本 將使用預設的全域性python直譯器建立虛擬環境 windows virtualenv p c python27 pytho...