Podle oficiální dokumentace Pythonu podpora Pythonu2.7 v blízké budoucnosti skončí.
UKONČENÍ PODPORY:Python 2.7 dosáhne konce své životnosti 1. ledna 2020. Upgradujte prosím svůj Python, protože Python 2.7 nebude po tomto datu udržován. Budoucí verze pipu přestane podporovat Python 2.7. Více podrobností o podpoře Pythonu 2 v pipu lze nalézt na https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Proč Ubuntu ve své nadcházející verzi nepoužívá Python3 jako výchozí?
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="19.04 (Disco Dingo)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 19.04"
VERSION_ID="19.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=disco
UBUNTU_CODENAME=disco
$ python
Python 2.7.16 (default, Apr 6 2019, 01:42:57)
[GCC 8.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Nejlepší odpověď
Podle poznámek k vydání Bionic Beaver:
Python 2 již není standardně nainstalován. Python 3 byl aktualizován na 3.6. Toto je poslední vydání LTS, které zahrnuje Python 2 v main.
A výše uvedené tvrzení je pravdivé. Python 2 není ve výchozím nastavení nainstalován ve verzi 18.04 a verzích vydaných poté. Ubuntu již přesunulo téměř všechny své projekty z Pythonu 2 do Pythonu 3. Například podle poznámek k vydání Disco Dingo:
Samba byla aktualizována na verzi 4.10.x a jednou z velkých změn je zde python3 Podpěra, podpora. V Disco je samba a její závislosti všechny python3 pouze nyní, s výjimkou tdb. tdb stále vytváří balíček python2, jmenovitě python-tdb, ale všechny ostatní, včetně samotné samby, jsou pouze python3.
Navíc ještě před vydáním Ubuntu 18.04 začal Ubuntu/Canonical žádat vývojáře, aby přešli na Python 3, protože konec se blíží . Z Pythonu – Ubuntu Wiki:
Veškerý vývoj řízený Ubuntu/Canonical by měl být nyní zaměřen na Python 3 a veškerý nový kód by měl být pouze Python 3. Pokud to nemůžete udělat kvůli vaší závislosti, pojďme si promluvit.
Zdá se, že na váš systém byl Python 2 nainstalován záměrně nebo může být jako závislost nějakého jiného balíčku, jehož vývojář nepřešel na Python 3. Nainstalované balíčky, které jsou závislé na Pythonu 2, můžete zkontrolovat spuštěním
apt rdepends python --installed
Důvod, proč je Python 2 vyvolán, když python
je provozován leží v jednom z historických bod PEP 394 — Příkaz „python“ na systémech podobných Unixu:
python
příkaz by měl vždy vyvolat Python 2 (aby se předešlo těžko diagnostikovatelným chybám při spuštění kódu Pythonu 2 na Pythonu 3).
V novějších verzích, jako je 20.04, Ubuntu poskytuje dva balíčky:
python-is-python2/focal,focal 2.7.17-4 all
symlinks /usr/bin/python to the DEPRECATED python2
python-is-python3/focal,focal 3.8.2-4 all
symlinks /usr/bin/python to python3
Jak název napovídá, dřívější by vytvořil python
k vyvolání python2
a později vyvolá python3
. Pokud nemáte žádnou aplikaci, která je závislá na Pythonu 2, můžete si nainstalovat python-is-python3
vytvořit python
k vyvolání python3
. Případně můžete také upravit shebang skriptu na /usr/bin/python3
aby skript přímo používal python3
jako tlumočník.