我已经安装了 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
简单的解决方案是编辑
.bashrc
并放入这一行:每当您编写
python3
它时,它都会将其替换为python3.7
.或者您可以使用
update-alternatives
首选的命令,即:所以这里
python3.7
会有更高的优先级python3.6
。然后使用:满意按回车键
我想扩展先前的答案,因为给出的两种方法并不等效,其中一种甚至可以破坏系统。问题是通过“更改默认 python 版本”可以尝试做两件不同的事情。
快速总结
添加
到
.bashrc
.不要用于更改您的默认 python 版本,因为这会破坏系统应用程序。
update-alternatives
更多详细信息
Bash 别名
第一个,对于交互式 shell,人们只是希望通过编写轻松地打开所需的 python
或者
这是通过添加行来完成的
到
.bashrc
. 如果有人正在使用另一个 shell,请将其添加到相应的配置文件中。这也有一个好处,如果它因任何原因引起问题,可以简单地删除有问题的线路.bashrc
并重新启动终端。update-alternatives
“更改默认 python 版本”可能意味着的第二件事是更改所有程序的默认 python 版本,包括那些不是从交互式 shell 启动的程序。这是运行的结果
但是,如果您在 Debian/Ubuntu 的全新安装中运行它,您会注意到命令返回
即使您通过
apt
. 这是有充分理由的。这样做的问题是许多系统应用程序使用python,并且根据确切的分布,许多使用python 3。
python3
全局更改命令调用的版本将强制这些应用程序使用此版本。尽管不同版本的 python 3 在很大程度上兼容,但仍有一些功能在版本之间移动和删除。如果系统应用程序使用这些功能,更改python3
为启动较新版本将破坏应用程序。测试
我在 VM 中创建了全新安装的 Ubuntu 18.04。添加 bash 别名不会立即引起问题。
使用该
update-alternatives
方法会导致apt
. 具体来说,我得到了如果您运行该
update-alternatives
方法,请修复您的系统如果我们跑了
update-alternatives
又坏了apt
,我们仍然可以修复系统。在我的测试过程中,终端仍然可以打开。可以通过运行返回到默认 python其中 3.X 是您系统的原始 python 3 版本,而 1000 只是确保它位于顶部的一些高优先级。然后,可以运行
并确保选择了原始系统 python。重新启动系统,它将恢复正常。
...当已经
python3.7
安装时对于没有 update-alternatives 命令的机器,可以做一个快速&肮脏的解决方案,比如
通常(至少在我见过的所有情况下),python3/python2/python 只是特定版本的 python 可执行文件的符号链接。更改此符号链接应更改“默认 python”