2

我下载了最新版本的python 3.3.0,现在我完成了安装,我想在我的centOS linux中运行它,但是当我在控制台“python”中输入它时,与操作系统安装捆绑在一起的python 2.7.0运行。我怎样才能将其更改为运行 3?我隐约觉得我必须更改有关bin文件夹中路径的代码或其他东西

4

2 回答 2

6

尝试命令:

python3.3

或者

python3

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

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

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

 alias python=python3
于 2013-03-24T13:51:38.223 回答
5

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

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

然而,最有可能的情况是您内部有一个符号链接/usr/local/bin/usr/bin命名python它指向 python 二进制文件。

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

python  -> pythonX
pythonX -> pythonX.Y

例如,

python  -> python2
python2 -> python2.7

您可以查看您python是否实际上只是一个符号链接,例如

ls -l $(which python)

就我而言,这给了我:

/usr/local/bin/python -> python2

显示 python 是 python2 的符号链接

我可以通过打字走得更远

ls -l $(which python2)

就我而言,这给了我

/usr/local/bin/python2 -> python2.7

所以无论如何,你有几个选择

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

2)更改您当前的python符号链接以指向您想要的python版本。通常这是通过将 force-f标志添加到ln.

python33) 通过在命令行上键入或#!/bin/env python3在脚本中用作 hash-bang来明确说明您想要运行 python 3.x。

4) .bashrc 或等效文件中的别名(python例如)。python3alias python='/path/to/python3

前两个选项的影响可能比您预期的更广泛。例如,他们会破坏yum包管理器,因为它只指定python.

第三个可能有点乏味,但它更精确,并且默认情况下,除了您专门调用 python3 的脚本之外,所有东西都可以使用 python2。

最后一个是一个不错的折衷方案,让您可以轻松打字python,但不会影响其他用户。

这完全取决于你。

于 2013-03-24T14:09:07.570 回答