在Linux上有两个版本的Python。如何将2.7设为默认版本?

2024-04-25 11:55:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我的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?


Tags: or版本binlicenseonusrhattype
3条回答

/usr/local/bin添加到列表中早于/usr/binPATH环境变量中。

通常这是在shell的rc文件中完成的,例如对于bash,您可以将其放入.bashrc

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

这将导致您的shell首先在/usr/local/bin中查找python,然后再与/usr/bin中的shell一起查找。

(当然,这意味着您还需要/usr/local/bin/python指向python2.7——如果它还没有指向,则需要符号链接它。)

所有操作系统都带有python的默认版本,它位于/usr/bin中。操作系统附带的所有脚本(例如,yum)都指向位于/usr/bin中的这个版本的python。 当您想安装一个新版本的python时,您不想破坏现有的脚本,这些脚本可能不适用于新版本的python。

正确的方法是将python作为备用版本安装。

e.g.
wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2 
tar xf Python-2.7.3.tar.bz2
cd Python-2.7.3
./configure --prefix=/usr/local/
make && make altinstall

现在,通过这样做,像yum这样的现有脚本仍然可以使用/usr/bin/python。 您的默认python版本将是安装在/usr/local/bin中的版本。 i、 e.当你输入python时,你会得到2.7.3

这是因为。$PATH变量在usr/bin之前有/usr/local/bin。

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

如果python2.7仍然没有作为默认的python版本生效,那么您需要这样做

export PATH="/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"

您可能不想更改默认的Python。

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

除此之外,用/usr/bin乱动可能会破坏包管理器管理包的能力。更改PATH中目录的顺序将影响Python之外的许多其他事情。(事实上,在/usr/local/bin之前有/usr/bin是比较常见的,这可能是你真正想要的,但如果你有相反的方法,可能有一个很好的理由。)

但是当您键入python时,您不需要来更改默认的Python以使系统运行2.7。


首先,可以设置shell别名:

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

如果您希望更改持久化,请在提示符下键入该命令,或者将其放入您的~/.bashrc中,现在当您输入python时,它将运行您选择的2.7,但当系统上的某个程序尝试运行具有/usr/bin/env python的脚本时,它将运行标准的2.6。


或者,只需在2.7中创建一个virtual environment(或者为不同的项目创建单独的venv),然后在venv中完成工作。

相关问题 更多 >