该python
程序命令执行Python2。可以使用该python3
命令执行Python 3 。如何使用python
命令执行Python 3 ?
python
也应保持其含义python2
。我的意思是说,我的评论是一种拥有特定于应用程序的Python版本的方式,而不是尝试解决系统的Python。
该python
程序命令执行Python2。可以使用该python3
命令执行Python 3 。如何使用python
命令执行Python 3 ?
python
也应保持其含义python2
。我的意思是说,我的评论是一种拥有特定于应用程序的Python版本的方式,而不是尝试解决系统的Python。
Answers:
一种简单安全的方法是使用别名。将其放入~/.bashrc
或~/.bash_aliases
归档:
alias python=python3
在文件中添加以上内容后,运行source ~/.bashrc
或source ~/.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
[2016年6月]推荐的过渡信息位置是Ubuntu Python官方页面。
对于Ubuntu和Debian,我们都有持续的项目目标,以使Python 3成为发行版中默认的首选Python版本。
这不是什么意思:
由于其他软件包的依赖性,不建议更改符号链接,但是它们“具有使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,则program.py
可以通过调用别名解释器来执行某些没有shebang的操作python program.py
。别名对于同时具有多个版本的python3(例如3.4和3.6)的系统也可能有用。
python
在转换完成之前,为我的答案添加更多有关为什么不将其更改为just的信息并没有真正意义。即使那样,它也可能只是一个非问题。
python3
在shebang中使用,而不是python
。
您可以尝试使用命令行工具update-alternatives
。
$ sudo update-alternatives --config python
如果出现错误“ python没有替代品”,请使用以下命令自己设置替代品:
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
相应地将路径更改为/usr/bin/python3
所需的python版本。
update-alternatives
不适合python吗?是因为legacy.python.org/dev/peps/pep-0394吗?
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
Ubuntu和其他Linux发行版在许多应用程序和命令上仍然很大程度上依赖于Python 2.7。如果将“ python”的默认引用更改为Python 3.x,则许多Python函数将开始引发断言错误。
例如,在Ubuntu上,除非您直接编辑文件并将shebang更改为引用“#!/ usr / bin / env python2.7”,否则“ pip”将不再正确运行。在Red Hat,Fedora和CentOS等RHEL(Red Hat Enterprise Linux)版本上,“ Yum”命令还依赖于Python 2.7。
我的意思是,您将导致大量代码开始引发断言错误,因此您可以在终端中键入“ python”以引用Python3.x。
您可以在终端中使用“ python3”命令,而在Python 3.x文件中使用shebang“#!/ usr / bin / env python3”则更好。
你可以符号链接/usr/bin/python
到python3
与
sudo ln -s /usr/bin/python3 /usr/bin/python
并且可以防止将Python 2和pip2作为依赖项安装
sudo apt-mark hold python python-pip
有关为什么您可能不想这样做的信息,请参见其他答案。Ubuntu 18.04+不再附带Python 2,因此它应该还不错。
python
被假定为Python 2,因此这可能会破坏某些东西。
python
->/usr/bin/python
update-alternatives
由于兼容性问题,您可以用来提供在不同时间可能需要的不同版本的程序。
例如,此答案是一个很好的示例,说明如何设置内容以同时维护不同版本的gcc / g ++。
只需对python2.7和python 3.3做同样的事情