我在Ubuntu 18.04上安装了Python3.6和Python3.8。当我执行python3 -V时,我得到的是python3.8.0,这是正确的。这是我目前默认的Python。
我在安装Python3.6和Python3.8时使用了Ubuntu18.04包存储库。我刚刚从源代码构建了Python3.10,现在我想将其设置为默认值。更改的规范方法是使用--update-alternatives,但我在安装Python3.6和Python3.8时没有这样做,所以当我执行以下命令时:
update-alternatives --query python
update-alternatives: error: no alternatives for python
Python3.8位于/usr/bin/python3.8中,Python3.10位于/usr/local/bin/python3.10中。
根据我在网上读到的内容,我应该这样做:
$ sudo update-alternatives --install /usr/local/bin/python python /usr/bin/python3.8
$ sudo update-alternatives --install /usr/local/bin/python python /usr/local/bin/python3.10
然后,我选择了默认的sudo update-alternatives -config python。
因为我目前没有任何替代方案,但不知何故我能够从Python3.6切换到Python3.8 (我不记得是如何切换到Python3.8的),上述命令会导致任何问题吗?3.8 (/usr/bin/)和3.10 ( /usr/local/bin/ )的不同位置有问题吗? 3.10的symlink进入/usr/local/bin/会有什么影响?
当然,我可以尝试一下,但是如果有问题,我不确定如果它出错了该如何退出。我在网上得到了很多不同的信息。
谢谢你的帮助。
发布于 2021-11-14 22:33:59
我已经回答了我自己的问题。首先,我确实有其他选择,但由于Ubuntu默认为Python2 (请Ubuntu更改这一点--世界已经改变了),命令是sudo update-alternatives -Python2 python3:
$ sudo update-alternatives --config python3
There are 2 choices for the alternative python3 (providing /usr/bin/python3).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python3.8 2 auto mode
1 /usr/bin/python3.6 1 manual mode
2 /usr/bin/python3.8 2 manual mode
注意"providing /usr/bin/python3“这一行。这意味着Python3的Python符号链接位于/usr/bin/python3中。所以我添加了一个新的:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.10 3
这使得Python 3.10优先级为3,最高优先级。然后:
$ python3 --version
Python 3.10.0
我希望这对将来的人有所帮助。
https://stackoverflow.com/questions/69967190
复制相似问题