在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包,原因如下:
-
这样做可能会通过从源代码直接编译来破坏系统(我不确定Ubuntu如何自定义他们的Python包构建)。
-
我担心使用存储库中的模块可能会出现问题。
有一个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中搜索命令。
安装
-
查看pyenv到〜/ .pyenv。
git clone git://github.com/yyuu/pyenv.git .pyenv
-
将〜/ .pyenv / bin添加到$ PATH以访问pyenv命令行实用程序。
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile
Zsh注意:修改
~/.zshenv
文件而不是~/.bash_profile
。 -
将pyenv init添加到shell以启用填充程序和自动完成。
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
Zsh注意:修改
~/.zshenv
文件而不是~/.bash_profile
。 -
重新启动shell以使路径更改生效。 您现在可以开始使用pyenv。
exec $SHELL
-
将Python版本安装到〜/ .pyenv / versions中。 例如,要安装Python 2.7.5,请下载并解压缩源代码,然后运行:
pyenv install 2.7.5
注意如果需要传递配置选项以从源构建,请使用CONFIGURE_OPTS环境变量。
-
重建填充二进制文件。 您应该在安装新的Python二进制文件时执行此操作(例如,在安装新的Python版本时,或者在安装提供二进制文件的软件包时)。
pyenv rehash