一尘不染

Linux上的两个版本的python。如何使2.7成为默认值

linux

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


阅读 281

收藏
2020-06-02

共1个答案

一尘不染

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

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

最重要的是,闲逛/usr/bin可能会破坏您的包管理器管理包的能力。并且更改目录中的顺序PATH将影响除Python之外的许多其他因素。(实际上,通常要/usr/local/bin领先于/usr/bin,这可能是您真正想要的—但是如果您有其他选择,则可能有充分的理由。)

但是,您 无需 更改默认的Python即可在键入时使系统运行2.7 python


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

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

在提示符下键入该命令,或者~/.bashrc如果您想使更改持久化,则将其放入您的计算机,现在键入该命令时
python将运行您选择的2.7,但是当系统上的某个程序尝试使用/usr/bin/env python标准2.6 运行该脚本时。


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

2020-06-02