在Ubuntu 12.04上升级到python 2.7.5

默认情况下,Ubuntu 12.04附带python v 2.7.3 。 我想将它升级到v 2.7.5 。 我试过这个问题中的说明,

 sudo apt-get install build-essential sudo apt-get install libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev cd ~/Downloads/ wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz tar -xvf Python-2.7.5.tgz cd Python-2.7.5 ./configure make sudo make altinstall 

最后一个命令失败并显示错误:

 ... Compiling /usr/local/lib/python2.7/xmlrpclib.py ... Compiling /usr/local/lib/python2.7/zipfile.py ... make: *** [libinstall] Error 1 

如何进行此升级?

当然,从源代码安装可以完成,但是我会犹豫是否从源代码升级我的Ubuntu系统的python包,原因如下:

  1. 这样做可能会通过从源代码直接编译来破坏系统(我不确定Ubuntu如何自定义他们的Python包构建)。

  2. 我担心使用存储库中的模块可能会出现问题。

有一个PPA看起来很活跃(2.7.x列车最后一次建于今年4月),但PPA还没有2.7.5版本。 您可能希望ping维护者并查看他们对未来构建的计划,以及它们是否包含2.7.5的计划。 如果可能的话,我建议从源代码安装。 与任何新软件一样,我建议首先在测试系统上构建它。

另一种选择是使用沙箱( pyenv )来运行任何新的未经测试的软件包。 直接安装到系统上可能会对机器的运行产生不利影响。

包pyenv将允许你在你的盒子上安装非系统Python版本,而不会影响你机器上安装的主Python包(同样:你的系统依赖于当前安装的Python版本,升级它可能会破坏你的系统)。 以前,建议将Pythonbrew用于从系统中隔离python包,但此后已被弃用并被pyenv包取代。

pyenv包提供以下function:

  • 允许您基于每个用户更改全局Python版本。
  • 为每个项目的Python版本提供支持。
  • 允许您使用环境变量覆盖Python版本。
  • 一次从多个版本的Python中搜索命令。

安装

  1. 查看pyenv到〜/ .pyenv。

     git clone git://github.com/yyuu/pyenv.git .pyenv 
  2. 将〜/ .pyenv / bin添加到$ PATH以访问pyenv命令行实用程序。

     echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile 

    Zsh注意:修改~/.zshenv文件而不是~/.bash_profile

  3. 将pyenv init添加到shell以启用填充程序和自动完成。

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

    Zsh注意:修改~/.zshenv文件而不是~/.bash_profile

  4. 重新启动shell以使路径更改生效。 您现在可以开始使用pyenv。

     exec $SHELL 
  5. 将Python版本安装到〜/ .pyenv / versions中。 例如,要安装Python 2.7.5,请下载并解压缩源代码,然后运行:

     pyenv install 2.7.5 

    注意如果需要传递配置选项以从源构建,请使用CONFIGURE_OPTS环境变量。

  6. 重建填充二进制文件。 您应该在安装新的Python二进制文件时执行此操作(例如,在安装新的Python版本时,或者在安装提供二进制文件的软件包时)。

     pyenv rehash