Python: версии языка

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Python: версии языка

Непрочитанное сообщение Olej » 22 ноя 2019, 16:06

Olej писал(а):
22 ноя 2019, 15:27
С времени этой темы, активного наблюдения за состоянием дел с Python, прошло уже 6 лет.
За которые Python из "один из языков программирования" превратился чуть ли не основной язык во многих сферах применения.
Ещё второе существенное изменение за эти годы: Python v.3 начал активно замещать Python v.2.
Многие новые проекты, утилиты и пакеты работают и существуют только в реализациях под Python 3.

Тем не менее, по умолчанию используется Python 2:

Код: Выделить всё

olej@ACER:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 10 (buster)
Release:	10
Codename:	buster

Код: Выделить всё

olej@ACER:~$ python --version
Python 2.7.16

olej@ACER:~$ python2 --version
Python 2.7.16

olej@ACER:~$ python3 --version
Python 3.7.3
Это связано с несколькими обстоятельствами:
1. Для совместимости с множеством существующих утилит Linux;
2. Развитие основной кодовой базы Linux происходит последние годы только и исключительно в среде RedHat (Fedora, CentOS, ...). А там на Python 2 был реализован пакетный менеджер YUM и первые реализации нового пакетного менеджера, пришедшего ему на замену, DNF. Дальше DNF переписывался на C++. Вот когда этот процесс застабилизируется (практически уже):
- Python 3 станет основным в Fedora/RedHat (что уже объяслено)...
- Python 2 будет исключён из системы, или устанавливаться как дополнительная альтернатива...
- все остальные дистрибутивы будут вынуждены последовать по тому же пути (как было с PulseAudio, systemd и др.)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python

Непрочитанное сообщение Olej » 12 ноя 2022, 15:25

Очень серьёзные изменения - Управление несколькими версиями Python под управлением Ubuntu 20.04
3 сентября в 10:22
Ubuntu 20.04 это первая LTS версия Ubuntu в которой отсутствует Python2 и которая поставляется из коробки с установленной версией Python 3.8.5. Но что если написанное вами приложение использующее более новую версию Python? Если вы, как и я, пытались заменить установленную по умолчанию в системе версию, то в процессе сломали вашу ОС. Если до этого вам никто не говорил не делать этого, тогда я возьму на себя эту честь: не делайте этого.
Вот как это выглядит в Mint 21:

Код: Выделить всё

olej@nvidia:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 21
Release:	21
Codename:	vanessa

Код: Выделить всё

olej@nvidia:~$ cat /etc/upstream-release/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu Jammy Jellyfish"

Код: Выделить всё

olej@nvidia:~$ python3 --version
Python 3.10.6

Код: Выделить всё

olej@nvidia:~$ which python2
olej@nvidia:~$ 
Здесь нет вообще Python 2 :!:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python

Непрочитанное сообщение Olej » 12 ноя 2022, 15:41

Olej писал(а):
12 ноя 2022, 15:25
Вот как это выглядит в Mint 21:
А вот как это выглядело в самом последнем обновлении Mint 20:

Код: Выделить всё

olej@R420:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 20.3
Release:	20.3
Codename:	una

Код: Выделить всё

olej@R420:~$ cat /etc/upstream-release/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu Focal Fossa"

Код: Выделить всё

olej@R420:~$ python -V
Python 2.7.18

olej@R420:~$ python3 -V
Python 3.8.10
Но!

Код: Выделить всё

olej@R420:~$ update-alternatives --display python
update-alternatives: ошибка: нет альтернатив для python

Код: Выделить всё

olej@R420:~$ update-alternatives --list python
update-alternatives: ошибка: нет альтернатив для python

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python

Непрочитанное сообщение Olej » 07 дек 2022, 21:17

Olej писал(а):
12 ноя 2022, 15:25
Здесь нет вообще Python 2
И Debian:

Код: Выделить всё

olej@esprimop420:~$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Код: Выделить всё

olej@esprimop420:~$ python -V
bash: python: команда не найдена

Код: Выделить всё

olej@esprimop420:~$ python3 -V
Python 3.9.2

Код: Выделить всё

olej@esprimop420:~$ python2 -V
bash: python2: команда не найдена
Здесь тоже нет Python 2 ...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python

Непрочитанное сообщение Olej » 07 дек 2022, 21:22

Olej писал(а):
07 дек 2022, 21:17
И Debian:
LMDE:

Код: Выделить всё

olej@nvme:~$ cat /etc/os-release
PRETTY_NAME="LMDE 5 (elsie)"
NAME="LMDE"
VERSION_ID="5"
VERSION="5 (elsie)"
ID=linuxmint
ID_LIKE=debian
HOME_URL="https://www.linuxmint.com/"
SUPPORT_URL="https://forums.linuxmint.com/"
BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/"
PRIVACY_POLICY_URL="https://www.linuxmint.com/"
VERSION_CODENAME=elsie
DEBIAN_CODENAME=bullseye

Код: Выделить всё

olej@nvme:~$ python2 -V
Command 'python2' not found, but can be installed with:
sudo apt install python2-minimal

Код: Выделить всё

olej@nvme:~$ python3 -V
Python 3.9.2

Код: Выделить всё

olej@nvme:~$ python -V
Command 'python' not found, did you mean:
  command 'python3' from deb python3
  command 'python' from deb python-is-python3
Здесь та же история...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python

Непрочитанное сообщение Olej » 07 дек 2022, 21:34

Olej писал(а):
07 дек 2022, 21:22
Здесь та же история...
История Python
Python 2.0, выпущенный в октябре 2000 года
...
Финальный релиз, 2.7.18, вышел 20 апреля 2020 года и включал исправления критических ошибок и блокировщиков релизов. Это ознаменовало конец существования Python 2.
Python 3.0 (также называемый "Python 3000" или "Py3K") был выпущен 3 декабря 2008 года.
Т.е. это означает (для Linux), что с 2008 г. по 2020 г. = 12 лет сосуществовали 2 линии версий Python с несовместимым (во многом) синтаксисом кода...
И до 2022, фактически, года Python 2 был в Linux дефаултным языком: на нём были написаны многие утилиты и пакеты.
А переход с Python 2 на Python 3 как на дефаултную реализацию занял ... с 2008 по 2022 = 14 лет. Не слабо так... :-o

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python: версии языка

Непрочитанное сообщение Olej » 07 дек 2022, 22:01

Olej писал(а):
07 дек 2022, 21:22
LMDE
Ну и - Fedora 35:

Код: Выделить всё

[olej@xenix ~]$ lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	Fedora
Description:	Fedora release 35 (Thirty Five)
Release:	35
Codename:	ThirtyFive

Код: Выделить всё

[olej@xenix ~]$ python --version
Python 3.10.8

Код: Выделить всё

[olej@xenix ~]$ python2 --version
Python 2.7.18

Код: Выделить всё

[olej@xenix ~]$ python3 --version
Python 3.10.8
Собственно, та же история: дефаултный Python - Python 3 :!:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python: версии языка

Непрочитанное сообщение Olej » 07 дек 2022, 22:06

Olej писал(а):
07 дек 2022, 22:01
Собственно, та же история: дефаултный Python - Python 3 :!:
Olej писал(а):
07 дек 2022, 21:34
А переход с Python 2 на Python 3 как на дефаултную реализацию занял ... с 2008 по 2022 = 14 лет. Не слабо так...
Это радикальные изменения: теперь Python 3 становится ведущей ... а собственно и единственной реализацией.
А Python 2, который во всём уступает Python 3 и синтаксически между собой не совместимы - уходит в историю ... со своей 22-летней историей :-D

И теперь мы можем рассматривать вопросы программирования только в синтаксисе Python 3 (и с использованием его пакетной системы) не оговаривая это дополнительно!
Это (для меня, по крайней мере) важно! Потому как, получается, 14 лет мы во всех обсуждениях здесь на форуме, в вопросах и ответах ... везде параллельно рассматривали и сравнивали 2 параллельные линии Python. Теперь речь везде будет идти только про Python 3.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python: версии языка

Непрочитанное сообщение Olej » 07 дек 2022, 22:08

Olej писал(а):
07 дек 2022, 22:06
Это радикальные изменения:
И отмечаем те дистрибутивы Linux, в которых впервые были замечены такие же дефаултные изменения:
- Mint 21
- LMDE5
- Debian 11
- Fedora 35 (возможно и 34 - я не следил)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Python: версии языка

Непрочитанное сообщение Olej » 05 янв 2023, 17:28

Вот это интересно - объяснением о версиях:

Код: Выделить всё

olej@R420:~/2023/Python$ aptitude show python-is-python3
Пакет: python-is-python3                         
Версия: 3.9.2-2
Новый: да
Состояние: не установлен
Мультиархитектура: разрешено
Приоритет: необязательный
Раздел: python
Сопровождающий: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Архитектура: all
Размер в распакованном виде: 13,3 k
Зависит: python3
Ломает: python, python-is-python2, python-is-python2-but-deprecated, python-minimal
Заменяет: python, python-is-python2, python-is-python2-but-deprecated, python-minimal
Предоставляет: python-is-python3:any (= 3.9.2-2)
Описание: symlinks /usr/bin/python to python3
 Starting with the Debian 11 (bullseye) and Ubuntu 20.04 LTS (focal) releases, all python packages use explicit python3 or python2 interpreter and do
 not use unversioned /usr/bin/python at all. Some third-party code is now predominantly python3 based, yet may use /usr/bin/python. 
 
 This is a convenience package which ships a symlink to point the /usr/bin/python interpreter at the current default python3. It may improve
 compatibility with other modern systems, whilst breaking some obsolete or 3rd-party software. 
 
 No packages may declare dependencies on this package.

Код: Выделить всё

olej@R420:~/2023/Python$ sudo apt install python-is-python3
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово         
Следующие НОВЫЕ пакеты будут установлены:
  python-is-python3
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 3 пакетов не обновлено.
Необходимо скачать 2.788 B архивов.
После данной операции объём занятого дискового пространства возрастёт на 13,3 kB.
Пол:1 http://ubuntu.colocall.net/ubuntu jammy/main amd64 python-is-python3 all 3.9.2-2 [2.788 B]
Получено 2.788 B за 0с (11,6 kB/s)            
Выбор ранее не выбранного пакета python-is-python3.
(Чтение базы данных … на данный момент установлено 486882 файла и каталога.)
Подготовка к распаковке …/python-is-python3_3.9.2-2_all.deb …
Распаковывается python-is-python3 (3.9.2-2) …
Настраивается пакет python-is-python3 (3.9.2-2) …
Обрабатываются триггеры для man-db (2.10.2-1) …

Код: Выделить всё

olej@R420:~/2023/Python$ python --version
Python 3.10.6

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей