我已经安装了 python3.7 但我不知道如何将其设为默认 python。
见下文:
~/Documents/robosuite$ python3.7
Python 3.7.1 (default, Oct 22 2018, 11:21:55)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
KeyboardInterrupt
>>>
~/Documents/robosuite$ python3
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
我希望在使用命令时显示 python3.7python3
答案1
简单的解决方案是编辑.bashrc
并放置此行:
alias python3=python3.7
每当您编写时,python3
它都会替换为python3.7
.
或者您可以使用update-alternatives
首选命令,即:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
那么这里python3.7
就会有更高的优先级python3.6
。然后使用:
sudo update-alternatives --config python3
如果满意请按回车键
答案2
我想扩展一下以前的答案因为给出的两种方法并不等同,其中一种甚至可能破坏系统。问题是,通过“更改默认的 python 版本”,人们可能会尝试做两件不同的事情。
快速总结
添加
alias python3=python3.7
到.bashrc
。
做不是用于update-alternatives
更改默认的 python 版本,因为这会破坏系统应用程序。
更多细节
Bash 别名
第一个,对于交互式 shell,人们只是希望通过编写轻松打开所需的 python
$ python
或者
$ python3
这是通过添加行来完成的
alias python3=python3.7
到.bashrc
。如果使用其他 shell,请将其添加到相应的配置文件中。这还有一个优点,如果由于任何原因导致问题,人们可以简单地删除有问题的线路.bashrc
并重新启动终端。
update-alternatives
“更改默认 Python 版本”的第二个含义是更改以下程序的默认 Python 版本:全部程序,包括那些不是从交互式 shell 启动的程序。这是运行的结果
$ sudo update-alternatives --config python3
但是,如果您在 Debian/Ubuntu 的全新安装中运行此命令,您会注意到该命令返回
update-alternatives: error: no alternatives for python3
即使您通过apt
.这是有充分理由的。
这样做的问题是,许多系统应用程序使用 python,并且根据具体的发行版,许多应用程序使用 python 3。python3
全局更改命令调用的版本将强制这些应用程序使用该版本。虽然不同版本的python 3基本兼容,但仍然存在一些问题在版本之间移动和删除的功能。如果系统应用程序使用这些功能,则更改为python3
启动较新版本将破坏该应用程序。
测试
我在虚拟机中全新安装了 Ubuntu 18.04。添加 bash 别名不会立即引起问题。
使用该update-alternatives
方法会导致apt
.具体来说,我得到了
ModuleNotFoundError: No module named 'apt_pkg'
update-alternatives
如果您运行了该方法,则修复您的系统
如果我们跑了update-alternatives
并且坏了apt
,我们仍然可以修复系统。在我的测试过程中,终端仍然能够打开。可以通过运行返回到默认的 python
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.X 1000
其中 3.X 是您系统的原始 python 3 版本,1000 只是一些高优先级,以确保它位于顶部。然后,就可以运行
$ sudo update-alternatives --config python3
并确保选择原始系统python。重新启动系统即可恢复正常。
答案3
$ sudo su
$ update-alternatives --install /usr/bin/python python /usr/bin/python3 1
...当已经python3.7
安装时
答案4
对于没有 update-alternatives 命令的机器,可以采取一种快速而肮脏的解决方案,例如
sudo ln -sf `which python3.7` `which python3`
通常(至少在我见过的所有情况下),python3/python2/python 只是特定版本的 python 可执行文件的符号链接。更改此符号链接应该更改“默认 python”