Linux上的两个版本的Python。 如何使2.7默认

我的linuxbox上有两个版本的python:

$python Python 2.6.6 (r266:84292, Jul 10 2013, 22:48:45) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> $ /usr/local/bin/python2.7 Python 2.7.3 (default, Oct 8 2013, 15:53:09) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> $ which python /usr/bin/python $ ls -al /usr/bin/python -rwxr-xr-x. 2 root root 4864 Jul 10 22:49 /usr/bin/python 

我怎样才能使2.7成为默认版本,所以当我键入python它使我在2.7?

你可能并不想改变你的默认Python。

您的发行版在/usr/bin安装了标准系统Python,并且可能有依赖于此的脚本,并且通过#! /usr/bin/env pythonselect#! /usr/bin/env python #! /usr/bin/env python 。 您通常可以在2.7版本中运行Python 2.6脚本,但是您想冒险吗?

最重要的是,使用/usr/bin进行monkeying会破坏你的软件包pipe理器pipe理软件包的能力。 并且改变PATH的目录顺序将会影响Python以外的许多其他function。 (事实上​​, /usr/local/bin/usr/local/bin更为常见,这可能是你真正想要的 – 但是如果你有相反的意思,大概有一个很好的理由)。

但是当你inputpython时,你不需要改变默认的Python来让系统运行2.7。


首先,你可以设置一个shell别名:

 alias python=/usr/local/bin/python2.7 

在提示符下input,或者把它放到~/.bashrc如果你想要改变是持久化的,现在当键入python它会运行你select的2.7,但是当你系统上的某个程序试图运行脚本时, /usr/bin/env python运行标准2.6。


或者,只需创build一个2.7以外的虚拟环境 (或者为不同的项目单独运行),然后在venv中进行工作。

/usr/local/bin添加到您的PATH环境variables中,比/usr/bin更早。

通常这是在shell的rc文件中完成的,例如bash,你可以把它放在.bashrc

 export PATH="/usr/local/bin:$PATH" 

这将导致你的shell首先在/usr/local/bin寻找一个python ,然后在/usr/bin

(当然,这意味着你也需要把/usr/local/bin/python指向python2.7 – 如果还没有,你需要把它链接起来。)

我想你已经手动安装了2.7版本,而2.6来自一个包?

简单的答案是:卸载python包。

更复杂的是:不要手动安装在/ usr / local中。 用2.7版本构build一个包然后升级。

包处理取决于你使用的分配。