通过pyenv实现linux多版本python共存

随着python 3的发布,大家在学习和使用python的时候可能会遇到多个版本切换的需求,如果每次切换都手动去修改环境变量就太麻烦了,通过pyenv这个工具,你可以随时切换任意版本的python用作当前开发环境!

工具/原料

  • linux系统
  • git命令工具

方法/步骤

1.安装 Python 的依赖包
在编译 Python 过程中会依赖一些其他库文件,因而需要首先安装这些库文件,已知的一些需要预先安装的库如下。在 Ubuntu下:

$ sudo apt-get update
$ sudo apt-get install make build-essential libssl-dev zlib1g-dev
$ sudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev wget curl
$ sudo apt-get install llvm libncurses5-dev libncursesw5-dev


2.安装 pyenv

$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv

$ vi ~/.bashrc

export PYENV_ROOT="$HOME/.pyenv"
export PATH = "$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
source ~/.bashrc
# exec $SHELL

#查看当前 pyenv 可检测到的所有版本,处于激活状态的版本前以 * 标示
$ pyenv versions


3.pyenv常用命令

# 查看当前 pyenv 可检测到的所有版本,处于激活状态的版本前以 * 标示。
$ pyenv versions
  system
* 3.5.1 (set by /root/.pyenv/version)
  3.5.1/envs/flask_py351
  3.5.1/envs/pelican
  flask_py351
  pelican

# 查看当前处于激活状态的版本,括号中内容表示这个版本是由哪条途径激活的(global、local、shell)
$ pyenv version
3.5.1 (set by /root/.pyenv/version)

# 使用python-build(一个插件)安装一个Python版本,到$PYENV_ROOT/versions路径下。
$ pyenv install -v 2.7.3

# 卸载
$ pyenv uninstall 2.7.3

# 为所有已安装的可执行文件 (如:~/.pyenv/versions/*/bin/*) 创建 shims,
# 因此,每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令
$ pyenv rehash

# 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。
$ pyenv global 3.4.0

# 设置面向程序的本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。
# 通过这种方式设置的 Python 版本优先级较 global 高。pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。
#若找不到,就用 global 版本。
$ pyenv local 2.7.3

# 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。
# 这个版本的优先级比 local 和 global 都要高。--unset 参数可以用于取消当前 shell 设定的版本。
$ pyenv shell pypy-2.2.1
$ pyenv shell --unset

# 创建新的环境,位于 ~/.pyenv/versions/
$ pyenv virtualenv 2.7.1 env271

# 切换到新的环境
$ pyenv activate env271

# 退回到系统环境
$ pyenv deactivate

# 删除新创建的环境
$ rm -rf ~/.pyenv/versions/env271/

# 创建新的环境,位于 ~/.pyenv/versions/
$ pyenv virtualenv 2.7.1 env271

# 切换到新的环境
$ pyenv activate env271

# 退回到系统环境
$ pyenv deactivate

# 删除新创建的环境
$ rm -rf ~/.pyenv/versions/env271/

# 创建新的环境,位于 ~/.pyenv/versions/
$ pyenv virtualenv 2.7.1 env271

# 切换到新的环境
$ pyenv activate env271

# 退回到系统环境
$ pyenv deactivate

# 删除新创建的环境
$ rm -rf ~/.pyenv/versions/env271/

# 创建新的环境,位于 ~/.pyenv/versions/
$ pyenv virtualenv 2.7.1 env271

# 切换到新的环境
$ pyenv activate env271

# 退回到系统环境
$ pyenv deactivate

# 删除新创建的环境
$ rm -rf ~/.pyenv/versions/env271/

$ pyenv install --list
$ pyenv 3.5.1 install -v
## refresh database
$ pyenv rehash

## if not new installed version, do like :
$ pyenv global 3.5.1


3.注意事項

   首先系统中要有git命令工具
    pyenv只针对当前用户的环境变量做控制


4.安装 pyenv-virtualenv插件

$ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
$ echo 'eval "$(pyenv virtualenv-init -)"' >> .bashrc
$ source .bashrc

5.利用pyenv-virtualenv插件创建python虚拟环境

(1)创建一个3.5.3的环境:$ pyenv virtualenv 3.5.3 env353 (这条命令在本机上创建了一个名为env353的python虚拟环境,这个环境的真实目录位于:~/.pyenv/versions/)
(2)切换和使用新的python虚拟环境: $ pyenv activate env353
(3)环境验证
    此时:python版本已经是3.5.3, 而且是在虚拟环境之中(env353),这时可以对这个环境进行任意包的安装,且不会对其他环境造成影响
(4)离开环境:$ pyenv deactivate


参考:
1.http://www.jianshu.com/p/a23448208d9a
2.http://blog.csdn.net/magedu_linux/article/details/48528257
3.http://blog.csdn.net/guoyunfei20/article/details/73350393
4.http://python.jobbole.com/85587/
5.http://blog.csdn.net/eric_sunah/article/details/56289937
6.https://segmentfault.com/a/1190000004020387
7.http://www.cnblogs.com/npumenglei/p/3719412.html

8.Python多版本切换工具-Pyenv\virtualenv及Anaconda科学计算环境的配置

9.pyenv + anaconda 4.2 + python3.5+ ubuntu 16.04 安装

10.使用pyenv安装多个Python版本

11.Ubuntu16.04下,通过pyenv安装anaconda,并安装tensorflow-gpu和opencv等库的简单方法

12.用pyenv 和 virtualenv 搭建单机多版本python 虚拟开发环境

















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值