将默认的Python版本从2.4更改为2.6

54

我想使用一些需要Python 2.6的新软件,而我们目前在我们的专用CentOS服务器上安装了2.42.6两个版本,情况如下:

$ which python
/usr/local/bin/python
$ which python2.6
/usr/bin/python2.6
$ which python2.4
/usr/local/bin/python2.4
$ ls -l /usr/local/bin/py*
-rwxr-xr-x 1 root root      81 Aug  9  2007 /usr/local/bin/pydoc
-rwxr-xr-x 2 root root 3394082 Aug  9  2007 /usr/local/bin/python
-rwxr-xr-x 2 root root 3394082 Aug  9  2007 /usr/local/bin/python2.4

如何将默认的python版本更改为2.6?


可能是重复的问题:Linux上有两个Python版本,如何将2.7设置为默认版本? - AncientSwordRage
1
那是三年后提出的问题,针对的是2.7而不是2.6,因此不是重复的。 - Kristopher Ives
但我认为它有一个更好的答案,而讨论的版本并不无关紧要 - 事实上是有两个版本,你想要改变默认值。 " 你可能不想真正改变你的默认Python......此外,对/usr/bin进行操作可能会破坏软件包管理器管理软件包的能力。 "-这与您所拥有的任何版本问题都不同,并且说明了为什么得票最高的答案没有提供足够的信息。此外,您希望人们指向最新的答案,因此日期问题也无关紧要。 - AncientSwordRage
6个回答

66

以 root 用户身份执行:

ln -sf /usr/bin/python2.6 /usr/local/bin/python

这将会创建一个符号链接,从 /usr/local/bin/python 指向 /usr/bin/python2.6(替换旧的硬链接)。


2
根据问题描述,2.6版本位于/usr/bin目录下。 - SiggyF
如果似乎无法工作(我在SLC5上注意到这一点),请尝试注销/登录。 - roman
但是如果您仍然在sudo方面遇到问题,我认为这个答案并不完整。请使用以下命令:update-alternatives --config python,参见此帖子:http://codeghar.wordpress.com/2009/01/27/update-alternatives-in-debian/ - roman
4
罗曼,这个解决方案并不适用于任何操作系统或任何情况。例如,在Ubuntu更改默认的Python版本可能会破坏你的系统,因为软件包更新通常会将更新放在备选的Python无法找到的位置。就这个问题而言,OP的默认Python版本在/usr/local中,因此更改指向/usr/bin/python2.6是安全的。还请注意,update-alternatives会在/usr/bin中添加符号链接。如果他的默认版本在/usr/local中,添加符号链接到/usr/bin也没有什么区别。 - unutbu
为了清晰起见,我会将其创建为符号链接而不是硬链接。 - ʇsәɹoɈ

16
作为替代方案,您还可以在Bash shell的启动文件中添加"python"命令的别名。
因此,打开启动文件: emacs ~/.bashrc
在编辑器中添加以下内容: alias "python" "python2.6"
然后重新启动终端。

11

rm /usr/local/bin/python
ln -s /usr/local/bin/python2.6 /usr/local/bin/python

这段代码是用来更改Python版本的。第一行删除了原来的Python版本,第二行建立了一个指向新版本的符号链接。请注意,这可能会影响到其他依赖于Python版本的程序。

2
这对我有用,但是我使用的是 /usr/bin/python2.6 而不是 /usr/local/bin/python2.6! :) - Thanasis Petsas

5
在您的bash shell启动文件中为命令“python”添加别名。请不要更改符号链接 /usr/bin/python,因为更改默认的Python(例如在Ubuntu或Linux Mint中)可能会破坏您的系统
附注:请阅读其他答案。

4

在CentOS中

ln -sf /usr/local/bin/python2.6 /usr/local/bin/python
ln -sf /usr/local/bin/python2.6 /usr/bin/python

查看版本请执行以下操作:

python -V

要修复yum "No module named yum"的问题,您需要执行以下操作:

vi `which yum`

#!/usr/bin/python 修改为 #!/usr/bin/python2.4


1

在使用meld时,我遇到了类似的问题,我只是将本地文件的文件名更改了一下,然后它就起作用了。我知道这不是一个好的解决方案,但我随时可以撤回更改。

sudo mv /usr/local/bin/python /usr/local/bin/re_python

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接