在Ubuntu上如何安装新版本的Python并保持旧版本?
背景:
- 我在使用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 个回答
我刚在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。我把这个过程记录在这里,希望对你有帮助。
我假设你所说的“新版本”是指“比Ubuntu默认版本更新的发布版本”。这意味着你需要的是python 3.1,它可以在软件库中找到。
sudo apt-get install python3
在Ubuntu的软件库中,不同版本的python可以共存,互不影响。如果你使用的Ubuntu版本比Lucid旧,你需要升级你的操作系统,或者启用“宇宙”软件库,这样python3才能在你的软件管理器中显示出来。
如果你指的是python 2.7,你需要知道它还没有发布。
当你从源代码安装时,默认情况下,安装会放在 /usr/local
这个地方。特别是,执行文件会变成 /usr/local/bin/pythonX.Y
,同时会有一个指向它的快捷方式,叫做 /usr/local/python
。而Ubuntu自带的安装位置是在 /usr/
(比如 /usr/bin/python
),所以新的安装不会覆盖掉它。要注意的是,PATH
环境变量中,/usr/local/bin
不能放在 /usr/bin
前面,否则你简单输入 python
时,就会执行新的版本,而不是旧的那个。