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 python
select#! /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一个包然后升级。
包处理取决于你使用的分配。