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

来源:互联网 发布:国内大数据公司现状 编辑:程序博客网 时间:2024/04/19 20:49

随着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 ~/.bashrcexport PYENV_ROOT="$HOME/.pyenv"export PATH = "$PYENV_ROOT/bin:$PATH"eval "$(pyenv init -)"source ~/.bashrc# exec $SHELL#查看当前 pyenv 可检测到的所有版本,处于激活状态的版本前以 * 标示$ pyenv versions3.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 version3.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 虚拟开发环境