两个 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?

444404 次浏览

/usr/local/bin添加到你的 PATH环境变量中,比 /usr/bin更早。

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

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

这将导致您的 shell 首先在 /usr/local/bin中寻找 python,然后再在 /usr/bin中寻找 python

(当然,这意味着您还需要让 /usr/local/bin/python指向 python2.7-如果它还没有指向 python2.7,那么您将需要对它进行符号链接。)

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

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

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

包处理取决于您使用的发行版。

您可能实际上并不想更改默认的 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版本中创建一个 虚拟环境(或者为不同的项目创建一个独立的 venv) ,然后在 venv 中完成你的工作。

所有操作系统都有一个缺省的 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 中的那个。 例如,当你输入 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"

输入命令

which python


//output:
/usr/bin/python


cd /usr/bin
ls -l

在这里你可以看到这样的东西

lrwxrwxrwx 1 root   root            9 Mar  7 17:04  python -> python2.7

默认的 python2.7是软链接到文本“ python”的

所以删除软链接 Python

sudo rm -r python

然后重试上面的命令

ls -l

你可以看到软链接被删除

-rwxr-xr-x 1 root   root      3670448 Nov 12 20:01  python2.7

然后为 python3.6创建一个新的软链接

Ln-s/usr/bin/python3.6 python

然后在终端中尝试命令 python

//output:
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux

键入 helpcopyrightcreditslicense以获得更多信息。

验证 python 的当前版本:

$ python --version

然后检查 python 是哪个文件的符号链接。

  $ ll /usr/bin/python

输出实例:

 lrwxrwxrwx 1 root root 9 Jun 16  2014 /usr/bin/python -> python2.7*

检查其他可用的 python 版本:

$ ls /usr/bin/python*

输出实例:

/usr/bin/python     /usr/bin/python2.7-config  /usr/bin/python3.4         /usr/bin/python3.4m-config  /usr/bin/python3.6m         /usr/bin/python3m
/usr/bin/python2    /usr/bin/python2-config    /usr/bin/python3.4-config  /usr/bin/python3.6          /usr/bin/python3.6m-config  /usr/bin/python3m-config
/usr/bin/python2.7  /usr/bin/python3           /usr/bin/python3.4m        /usr/bin/python3.6-config   /usr/bin/python3-config     /usr/bin/python-config

如果要将 Python 的当前版本更改为3.6版本,请编辑文件 ~/. bashrc:

vim ~/.bashrc

在文件末尾添加以下一行并保存:

alias python=/usr/local/bin/python3.6

为 python 3.6安装 pip

$ sudo apt-get install python3.6 python3.6-dev
$ sudo curl https://bootstrap.pypa.io/ez_setup.py -o - | sudo python3.6
$ sudo easy_install pip

在 Success 中,检查 pip 的当前版本:

$ pip3 -V

输出实例:

pip 1.5.4 from /usr/lib/python3/dist-packages (python 3.6)

最简单的方法; 这三个指令可以帮助你设置,

Python 2.x 到3. x

  1. 查看 python 版本,使用 python --version(让您安装一个是2.7. x)
  2. 查找 巨蟒3的安装位置,使用 which python3(或者 which python提供当前安装的 python 版本)
  3. 最后一步,使用别名 alias python=/usr/bin/python3.6(上一步中的一个)
  4. 现在,再次运行,python --version,你会发现,3.6.x安装。

Python 3.x 到2.x (几乎相同)

  1. 查看 python 版本,使用 python --version(让您安装一个是3.6. x)
  2. 查找 巨蟒2的安装位置,使用 which python2(which python提供当前版本的 python 的安装位置)
  3. 最后一步,使用别名,alias python=/usr/bin/python2.7(上面步骤中的一个)
  4. 现在,再次运行,python --version,你会发现,2.x.x安装。