安装了Python 3.x,但是python UNIX命令启动了Python 2.x.

Dec*_*out 2 python linux centos python-3.x

我下载了python 3.3.0,这是最新版本,我现在完成安装我想在我的centOS linux中运行它,但是当我在控制台"python"中输入它时,python 2.7.0与os安装运行捆绑在一起.我怎么能改变它运行3?我依稀觉得我必须更改bin文件夹中的路径代码或其他东西

Mik*_*maa 6

尝试命令:

python3.3
Run Code Online (Sandbox Code Playgroud)

要么

python3
Run Code Online (Sandbox Code Playgroud)

Python命令和兼容性http://www.python.org/dev/peps/pep-0394/

您不应该通过将Python 3符号链接到Python 2来更改系统默认值,因为这可能会破坏您的操作系统,这依赖于系统默认python为Python 2.x(由启动脚本,应用程序等引用)的事实.

如果要在键入命令时运行Python 3,python请将以下内容添加到shell configuratin文件中:

 alias python=python3
Run Code Online (Sandbox Code Playgroud)

  • 澄清说不是没有 (2认同)

jed*_*rds 5

如果python从命令行运行,python则由您的$PATH环境变量确定名为的可执行文件的搜索顺序。 echo $PATH将显示您的路径搜索顺序;较早的目录优先于较后的目录。

如果键入,which python您将python在搜索路径中看到确定为第一台机器的机器。

最有可能的,但是,在这里你有一个符号连接内部的情况/usr/local/bin/usr/bin命名python指向蟒蛇二进制文件。

在大多数系统中,实际上有两个符号链接,

python  -> pythonX
pythonX -> pythonX.Y
Run Code Online (Sandbox Code Playgroud)

例如,

python  -> python2
python2 -> python2.7
Run Code Online (Sandbox Code Playgroud)

您可以看到您python实际上是否只是一个类似以下内容的符号链接

ls -l $(which python)
Run Code Online (Sandbox Code Playgroud)

就我而言,这给了我:

/usr/local/bin/python -> python2
Run Code Online (Sandbox Code Playgroud)

显示python是python2的符号链接

我可以输入以下内容

ls -l $(which python2)
Run Code Online (Sandbox Code Playgroud)

就我而言,这给了我

/usr/local/bin/python2 -> python2.7
Run Code Online (Sandbox Code Playgroud)

所以无论如何,您有几种选择

1)在食物链上方的某个目录中-列表中较早的目录中,将符号链接从python(可能是)添加到所需的python版本。例如,通常高于。python3$PATH/usr/local/bin/usr/bin

2)更改当前的python符号链接,以指向所需的python版本。通常,这是通过在上添加force -f标志来完成的ln

3)明确指出您想通过python3在命令行上键入或#!/bin/env python3在脚本中用作哈希爆炸来运行python3.x 。

4)别名pythonpython3在你的.bashrc或等效文件(例如alias python='/path/to/python3)。

前两个选项的影响范围可能超出您的预期。例如,他们将破坏yum软件包管理器,因为它仅指定python

第三个可能会有点乏味,但是它更加精确,并且默认情况下将允许所有内容使用python2,除了您专门称为python3的脚本。

最后是一个不错的折衷方案,使您轻松键入内容python而不影响其他用户。

完全取决于您。