如何让‘python’程序命令执行Python 3?

如何让‘python’程序命令执行Python 3?

程序python命令执行的是Python2,使用python3命令可以执行Python3,如何使用命令执行Python3 python

答案1

您可以安装系统范围的软件包:

$ sudo apt install python-is-python3

参见注意事项: Ubuntu 20.04 中的 python-is-python3 包——它是什么,它实际上做什么?

一种简单安全的方法是使用别名。将其放入~/.bashrc~/.bash_aliases文件中:

alias python=python3

在文件中添加以上内容后,运行source ~/.bashrcsource ~/.bash_aliases

例如:

$ python --version
Python 2.7.6
$ python3 --version
Python 3.4.3
$ alias python=python3
$ python --version
Python 3.4.3

要绕过别名,请使用command内置命令:

$ command python --version
Python 2.7.6

绕过别名的另一种方法是\在命令前使用。

$ \python --version 
Python 2.7.6

要在当前 shell 中禁用别名,请使用unalias内置命令:

$ unalias python
$ python --version
Python 2.7.6

答案2

[2016 年 6 月]有关过渡的信息的推荐来源是官方Ubuntu Python页。


来自Ubuntu 维基百科

对于 Ubuntu 和 Debian,我们有正在进行项目目标使 Python 3 成为发行版中默认的、首选的 Python 版本。

这是什么才不是意思是:

  • /usr/bin/python将指向 Python 3。不,这不会发生(除非PEP 394提倡其他的,这在可预见的未来是值得怀疑的)。/usr/bin/python并将/usr/bin/python2指向 Python 2.7,/usr/bin/python3并将指向最新支持的 Python 3 版本。

  • Python 2 将从档案中删除。不,这不会发生。我们预计 Python 2.7 将在 Ubuntu 中持续受支持并可用很长一段时间,因为PEP 373承诺提供上游错误修复维护支持直至 2020 年。

由于其他包依赖关系,不建议更改符号链接,但他们“有正在进行的项目目标,使 Python 3 成为发行版中默认的、首选的 Python 版本”。


对于 CLI 使用,例如@Radu Rădeanu,我建议在用户的~/.bashrc,.bash_aliases文件中放置一个别名(不同的文件,包括~/.bash_profile,至少加载一次,主要是为了组织目的,但可能因平台而异)。Python虚拟环境也运行良好。

别名示例:

alias python=python3

或者

alias python='/usr/bin/python3'

脚本仍应使用类似的东西#!/usr/bin/env python3来实现跨兼容性。

env非常适合与虚拟环境混合使用。

注意(感谢@wjandrea):别名是 bash 运行时的一部分,而不是用户环境的一部分。因此,它们不适用于 shebang(#!)。如果您更喜欢别名 python=python3,那么program.py可以通过像这样调用别名解释器来执行一些没有 shebang 的解释器python program.py。对于具有多个版本的 python3(如 3.4 和 3.6 同时存在)的系统,别名可能也很有用。

答案3

更新:据我所知,这是错误的方法,因为 Python2 和 Python3 不能互换。

您可以尝试命令行工具update-alternatives

$ sudo update-alternatives --config python

如果出现错误“没有适用于 python 的替代方案”,请使用以下命令自行设置替代方案:

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

将路径更改/usr/bin/python3为您想要的 Python 版本。

答案4

cd ~
gedit .bash_aliases

然后写

alias python=python3

或者

alias python='/usr/bin/python3'

保存文件,关闭终端并重新打开。
关联

相关内容