zoukankan      html  css  js  c++  java
  • ubuntu下安装多版本Python

      今天一不小心又把ubuntu系统给完坏了,因为我把python3卸载了,然后就。。。好了,不废话了,接下来就说一下如何在ubuntu下管理python的多个版本。我这里使用的是一个叫pyenv的Python版本管理工具。

      系统环境:ubuntu14.04LTS,系统默认的python版本为2.7,我这里想要再安装一个3.4.3版本。

    • 再安装python之前,我们首先要安装这个管理工具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

      我们还可以通过下面这个命令来查看可以安装的python版本:

    $ pyenv install --list
    • 如果我们确定要安装python3.4.3的话,接下来我们就可以安装python了,但是再安装之前,我们必须要安装python所需要的依赖包,这个必须要安装,安装会失败的:
    $ sudo apt-get install libc6-dev gcc
    $ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
    • 上面的依赖包搞定之后,我们就可以安装python了:
    $ pyenv install 3.4.3 -v

      该命令会从github上下载python的源代码,并解压到/tmp目录下,然后在/tmp中执行编译工作。若依赖包没有安装,则会出现编译错误,需要在安装依赖包滞后重新执行该命令。

    • 安装完成之后,需要使用如下命令对数据库进行更新:
    $ pyenv rehash
    • 查看当前已经安装的python版本
    $ pyenv versions
    * system (set by /home/seisman/.pyenv/version)
    3.4.3

      其中星号代表是当前系统正在使用的python版本是系统自带的。

    • 设置全局的python版本
    $ pyenv global 3.4.3
    $ pyenv versions
    system
    * 3.4.3 (set by /home/seisman/.pyenv/version)

      从上面,我们可以看出来当前的python版本已经变为了3.4.3。也可以使用pyenv local或pyenv shell临时改变python的版本。

    • 确认python版本
    $ python
    Python 3.4.3 (default, Apr  1 2015, 19:10:43) 
    [GCC 4.8.2] on linux
    Type "help", "copyright", "credits" or "license" for more information.

      注意事项:

    • 输入python即可使用新版的python;
    • 系统自带的脚本会以/usr/bin/python的方式直接调用老版本的python,因而不会对系统脚本产生影响;
    • 使用pip安装第三方模块时会安装到~/.pyenv/versions/3.4.3下,不会和系统模块发生冲突;
    • 使用pip安装模块后,可能需要执行pyenv rehash更新数据库。

      参考资料:

      [1] http://seisman.info/python-pyenv.html

      [2] http://crazyof.me/blog/archives/13.html

  • 相关阅读:
    班服 状压DP NOIP模拟赛
    记录奥林比克/课程录制 洛谷P2255 [USACO14JAN]
    字符串的展开 vijos1379 NOIP2007 字符串 模拟
    树网的核 Vijos1362 NOIP2007 树结构 直径 暴搜
    浏览器(Web Navigation) codevs 5373 POJ 1028 简单模拟
    FPS集合 Codgic1351 动态规划 DP NOIP模拟赛
    基于VBA的Excel抽奖软件
    【CodeForces】Round #436
    【NOI OpenJudge】【1.3】编程基础之算术表达式与顺序执行
    【NOI OpenJudge】【1.2】编程基础之变量定义、赋值及转换
  • 原文地址:https://www.cnblogs.com/ningvsban/p/4384995.html
Copyright © 2011-2022 走看看