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 包:
这样做可能会通过直接从源代码进行编译而破坏系统(我不太确定 Ubuntu 如何定制他们的 Python 包构建)。
我会担心可能今后使用存储库中的模块可能会出现问题。
有一个电力供应协议看起来是活跃的(2.7.x 列车上一次构建于今年 4 月),但 PPA 还没有 2.7.5 版本。您可能需要联系维护者,看看他们对未来版本的计划是什么,以及他们是否会为 2.7.5 包含一个版本。如果可能的话,我建议这样做,而不是从源代码安装。与任何新软件一样,我建议先在测试系统上构建它。
另一个选择是使用沙盒(pyenv
)来运行任何未经测试的新软件包。直接安装到您的系统可能会对您的机器的运行产生不利影响。
包裹pyenv将允许在你的机器上安装非系统 Python 版本,而不会影响你机器上安装的主要 Python 包(再次强调:你的系统依赖于当前安装的 Python 版本,升级它可能会破坏你的系统)。以前,Pythonbrew被推荐用于将 Python 包与系统隔离,但是后来已被弃用并被该pyenv
包取代。
该pyenv
软件包提供了以下功能:
- 允许您根据每个用户更改全局 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 以启用 shims 和自动完成。
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 环境变量。
重建 shim 二进制文件。每次安装新的 Python 二进制文件时,都应该重建 shim 二进制文件(例如,安装新的 Python 版本时,或者安装提供二进制文件的包时)。
pyenv rehash