在 Ubuntu 12.04 上升级到 Python 2.7.5

在 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

我该如何进行升级?

答案1

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

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

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

有一个电力供应协议看起来是活跃的(2.7.x 列车上一次构建于今年 4 月),但 PPA 还没有 2.7.5 版本。您可能需要联系维护者,看看他们对未来版本的计划是什么,以及他们是否会为 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
    
  2. 将 ~/.pyenv/bin 添加到您的 $PATH 以访问 pyenv 命令行实用程序。

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

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

  3. 将 pyenv init 添加到你的 shell 以启用 shims 和自动完成。

    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. 重建 shim 二进制文件。每次安装新的 Python 二进制文件时,都应该重建 shim 二进制文件(例如,安装新的 Python 版本时,或者安装提供二进制文件的包时)。

    pyenv rehash
    

相关内容