在Ubuntu上如何安装新版本的Python并保持旧版本?

9 投票
4 回答
12441 浏览
提问于 2025-04-16 00:01

背景:

  • 我在使用Ubuntu系统。
  • 更新的Python版本在apt-get的库里找不到(或者在synaptic里也没有)。
  • 我打算把旧版本的Python作为默认版本,这样在命令行输入“python”时会调用它。
  • 我打算用pythonX.X来调用新版本的Python(X.X是新版本的具体数字)。

根据这些背景,我该如何安装更新的Python版本,同时保留旧版本呢?


我从python.org下载了“从源代码安装”的*.tgz包。里面的说明很简单,告诉我“执行三个命令:./configure; make; make test; sudo make install;”。

如果我执行这些命令,是否会覆盖掉我已有的旧版本Python(我绝对需要旧版本)?

4 个回答

1

我刚在Ubuntu 8.04上安装了Python2.6。
首先,获取所有需要的依赖项,输入命令“apt-get build-dep python2.5”(Python 2.6所需的依赖和2.5是一样的)。
接着,应用一个补丁,补丁的地址是http://www.lysium.de/sw/python2.6-disable-old-modules.patch
输入命令:patch -p1 < python2.6-disable-old-modules.patch

然后,输入命令:./configure --prefix=/opt/python2.6
接着,输入命令:make
最后,输入命令:sudo make install

再输入命令:sudo ln -s /opt/python2.6/bin/python2.6 /usr/local/bin/python2.6
看起来一切正常,不过默认的Python版本还是2.5。我把这个过程记录在这里,希望对你有帮助。

3

我假设你所说的“新版本”是指“比Ubuntu默认版本更新的发布版本”。这意味着你需要的是python 3.1,它可以在软件库中找到

sudo apt-get install python3

在Ubuntu的软件库中,不同版本的python可以共存,互不影响。如果你使用的Ubuntu版本比Lucid旧,你需要升级你的操作系统,或者启用“宇宙”软件库,这样python3才能在你的软件管理器中显示出来。

如果你指的是python 2.7,你需要知道它还没有发布。

11

当你从源代码安装时,默认情况下,安装会放在 /usr/local 这个地方。特别是,执行文件会变成 /usr/local/bin/pythonX.Y,同时会有一个指向它的快捷方式,叫做 /usr/local/python。而Ubuntu自带的安装位置是在 /usr/(比如 /usr/bin/python),所以新的安装不会覆盖掉它。要注意的是,PATH 环境变量中,/usr/local/bin 不能放在 /usr/bin 前面,否则你简单输入 python 时,就会执行新的版本,而不是旧的那个。

撰写回答