我在将草图从 Arduino IDE 上传到 ESP32 时遇到问题,警告是 $PATH 中缺少 python。我执行了此操作,但which python
没有返回任何内容。这很奇怪,因为在从 19.10 升级到 20.04 之前,我从 Arduino IDE 上传到 ESP32 没有任何问题。
我注意到 20.04 升级删除了不少常用的 Gnome 应用程序,例如 gnome-logs 和 gnome-calculator,事实上我提到过它这里。所以我直接运行sudo apt install python
重新安装 Python。Python 已安装,IDE 现在正在按预期上传到 ESP32。但我注意到安装的 Python 版本是 python2,我以为它已经过时了,已被 python3 取代。为什么 Ubuntu 存储库仍在安装 python2?我应该删除它并安装 python3 吗?
编辑:输出dpkg -l | grep python-is
ii python-is-python2 2.7.17-4
所有符号链接 /usr/bin/python 到已弃用的 python2
答案1
在 Ubuntu 中,以下术语适用于所有受支持的版本:
- 该
python
命令仅引用 Python 2 解释器。包名称中带有“python-”的 deb 包仅与 Python 2 兼容。 - 该
python3
命令仅引用 Python 3 解释器。包名称中带有“python3-”的 deb 包仅与 Python 2 兼容。
原因:
Py3 引入了一些与 Py2 不向后兼容的更改。因此,人们必须指定正确的解释器...解释器无法自行可靠地找出答案。
佩普 394允许Ubuntu 将其更改
python
为指向 py3,但没有要求它。相反,它需要一致、可预测的使用。无论上游项目做什么,Ubuntu 都会为 LTS 版本提供长达 10 年的支持(5 年社区支持,另外 5 年扩展安全维护)。Python 2 将继续存在于 Ubuntu 的各个版本中,直到 2028 年 Ubuntu 18.04 退役。
在此之前,更改名称将令人无比困惑和沮丧。哪些在线答案是正确的?您应该使用哪些文档?遇到问题的新用户将如何向 AskUbuntu 表达他们正在使用的 Python 版本当他们不知道有区别的时候?
Ubuntu 开发人员表示无意更改名称。其他一些上游项目(如 QT)同样包含版本号在他们的应用程序名称中以避免不兼容版本之间的混淆。也许几年后这种情况会改变……但也许不会。