Documentation for a newer release is available. View Latest

Python

Обновление пакета Python до последней версии

Пакет python3 теперь обновлён до последней версии 3.9 в Fedora 33. Ранее, в Fedora 32, поддерживалась версия 3.8 пакета python3, которая теперь обновлена.

Это последнее обновление Python 3.9 предоставит множество улучшений. Некоторые из основных особенностей:

  • Добавлены операторы объединения (|) и обновления (|=) для класса dict.

  • Обобщённые подсказки типов в стандартных коллекциях.

  • Поддержка более гибких аннотаций функций и переменных.

  • Ослабление грамматических ограничений путём разрешения декораторам быть любым допустимым выражением.

  • Поддержка базы данных часовых поясов IANA в модуле zoneinfo.

  • Строковые методы removeprefix и removesuffix будут удалять префиксы и суффиксы из строки.

  • CPython теперь использует новый синтаксический анализатор на основе грамматики выражений (PEG).

Примечания по миграции пакетов pip, установленных пользователем

При обновлении Fedora с версии 32 до Fedora 33 версия основного интерпретатора Python изменяется с 3.8 на 3.9. Если у вас установлены какие-либо пакеты Python с помощью pip, вы должны выполнить следующую процедуру для их миграции на новую версию:

  1. Установите предыдущую версию пакета python3:

    sudo dnf install python3.8
  2. Получите pip для предыдущей версии Python:

    python3.8 -m ensurepip --user
  3. Посмотрите установленные пакеты:

    python3.8 -m pip list
  4. Сохраните список с конкретными версиями:

    python3.8 -m pip freeze > installed.txt
  5. Установите те же пакеты для текущей версии по умолчанию:

    python3 -m pip install --user -r installed.txt
  6. Удалите пользовательские пакеты, установленные для Python 3.8; это обеспечит правильное удаление файлов в ~/.local/bin:

    python3.8 -m pip uninstall $(python3.8 -m pip list --user | cut -d" " -f1)
  7. При необходимости очистите теперь пустую структуру каталогов:

    rm -rf ~/.local/lib/python3.8/
  8. При необходимости удалите ненужную версию Python:

    sudo dnf remove python3.8

Кроме того, если у вас есть какие-либо пакеты pip, установленные с помощью sudo, выполните следующие команды перед выполнением последнего шага выше, который удаляет `python3.8`, или установите его снова временно:

  1. Получите pip для предыдущей версии Python для пользователя root:

    sudo python3.8 -m ensurepip
  2. Посмотрите системные установленные пакеты:

    sudo python3.8 -m pip list
  3. Удалите установленные пакеты для 3.8; это обеспечит правильное удаление файлов в /usr/local/bin:

    sudo python3.8 -m pip uninstall $(python3.8 -m pip list | cut -d" " -f1)
  4. При необходимости очистите теперь пустую структуру каталогов:

    sudo rm -rf /usr/local/lib*/python3.8/

Если вы следовали первой процедуре, пакеты уже установлены для вашей учётной записи пользователя, что является предпочтительным вариантом. В будущем избегайте использования sudo pip; эти инструкции предназначены только для восстановления пользователей, которые уже использовали sudo pip в прошлом.

Прекращение поддержки Python 3.4 и Python 2.6

Пакеты python34 и python26 удалены из Fedora 33 без замены. Пакеты больше не будут доступны в репозиториях, но могут остаться в существующих установках. Оба пакета сохранялись в Fedora по устаревшим причинам, и их дальнейшее обслуживание становилось всё более сложным, принося всё меньше пользы дистрибутиву, поэтому они теперь удалены.