GNU/Linux >> Znalost Linux >  >> Ubuntu

Proč je Python 2.7 stále výchozí verzí Pythonu v Ubuntu?

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.

Související:Můžete nainstalovat apk v Ubuntu Touch?
Ubuntu
  1. Proč Apt již neaktualizuje jádro?

  2. Proč je Ubuntu nejlepší pro správu serveru

  3. Jak nastavit výchozí bránu na Ubuntu

  1. Jak změnit verzi Pythonu v Ubuntu a Debianu

  2. Jak nainstalovat Python na Ubuntu 20.04 a 18.04?

  3. Co se stane s prostředím Unity Desktop a výchozí verzí Ubuntu?

  1. Jak nainstalovat nejnovější verzi ruční brzdy na Ubuntu

  2. Verze jádra Ubuntu 22.04

  3. Proč je prohlížeč Chromium stále ve verzi 53 pro Ubuntu 14.04 Trusty Tahr?