在 Ubuntu 12.04 上升级到 python 2.7.5

Gab*_*iel 9 upgrade python 12.04

Ubuntu 12.04python 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
Run Code Online (Sandbox Code Playgroud)

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

...
Compiling /usr/local/lib/python2.7/xmlrpclib.py ...
Compiling /usr/local/lib/python2.7/zipfile.py ...
make: *** [libinstall] Error 1
Run Code Online (Sandbox Code Playgroud)

如何进行此升级?

Kev*_*wen 13

当然,可以从源代码安装,但出于以下几个原因,我会犹豫是否从源代码升级我的 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软件包提供以下功能:

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

安装

  1. 在 ~/.pyenv 中查看 pyenv。

    git clone git://github.com/yyuu/pyenv.git .pyenv
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将 ~/.pyenv/bin 添加到您的 $PATH 以访问 pyenv 命令行实用程序。

    echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile
    
    Run Code Online (Sandbox Code Playgroud)

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

  3. 将 pyenv init 添加到您的 shell 以启用垫片和自动完成。

    echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
    
    Run Code Online (Sandbox Code Playgroud)

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

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

    exec $SHELL
    
    Run Code Online (Sandbox Code Playgroud)
  5. 将 Python 版本安装到 ~/.pyenv/versions 中。例如,要安装 Python 2.7.5,请下载并解压源代码,然后运行:

    pyenv install 2.7.5
    
    Run Code Online (Sandbox Code Playgroud)

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

  6. 重建 shim 二进制文件。每次安装新的 Python 二进制文件时(例如,安装新的 Python 版本时,或安装提供二进制文件的包时),都应该执行此操作。

    pyenv rehash
    
    Run Code Online (Sandbox Code Playgroud)