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

python程序命令执行Python 2.可以使用python3命令执行Python 3。 如何使用python命令执行Python 3?

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

 alias python=python3 

在文件中添加上述内容后,运行以下命令:

 source ~/.bash_aliases or source ~/.bashrc 

例如:

 $ 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 

[2016年6月]有关转换信息的推荐位置是官方Ubuntu Python页面。


来自Ubuntu wiki :

对于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将从存档中删除。 不,这不会发生 。 考虑到PEP 373承诺上游错误修复维护支持到2020年,我们希望Python 2.7在Ubuntu中保持支持并可用相当长的时间。

由于其他软件包依赖性,不建议更改符号链接,但它们“具有持续的项目目标,以使Python 3成为发行版中的默认,首选Python版本”。


对于CLI使用,比如@RaduRă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,那么一些没有shebang的program.py可以通过调用这个python program.py类的别名解释器来执行。 别名对于具有多个版本的python3(如3.4和3.6)的系统也可能很有用。

更新:这是错误的方法,我已经了解,因为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版本。

Ubuntu以及其他Linux发行版仍然在很大程度上依赖于Python 2.7来实现许多应用程序和命令。 如果将“python”的默认引用更改为Python 3.x,那么许多Python函数将开始抛出断言错误。

例如,在Ubuntu上,除非你直接编辑文件并将shebang更改为引用’#!/ usr / bin / env python2.7’,否则’pip’将不再正常运行。 在RHEL(Red Hat Enterprise Linux)版本中,如Red Hat,Fedora和CentOS,’Yum’命令也依赖于Python 2.7。

我的观点是,您将导致大量代码开始抛出断言错误,因此您可以在终端中键入’python’以引用Python 3.x.

你最好在终端中使用’python3’命令,在Python 3.x文件中使用shebang’#!/ usr / bin / env python3’。

 cd ~ gedit .bash_aliases 

然后写任何一个

 alias python=python3 

要么

 alias python='/usr/bin/python3' 

保存文件,关闭终端并再次打开。
链接

您可以使用update-alternatives来提供由于兼容性问题而在不同时间可能需要的不同版本的程序。

例如, 这个答案是如何设置同时维护不同版本的gcc / g ++的一个很好的例子。

用python2.7和python 3.3做同样的事情

 cat > /usr/local/bin/py #!/usr/bin/dash python3 "$@"  

(同样,如果您对/ usr / local / bin有写入权限)

 cat > /usr/local/bin/pyi #!/usr/bin/dash python3 -i "$@"  

然后你只为你选择的python输入py(并在#!行中使用py)。

您可以使用符号链接/usr/bin/pythonpython3

 sudo ln -s /usr/bin/python3 /usr/bin/python 

请参阅其他答案,了解为什么您可能不想这样做。 Ubuntu 18.04不再附带Python 2,所以它不应该太糟糕。