Мова Python
Поліпшена швидкодія Python
Залежно від навантаження, можна спостерігати до 27% збільшення швидкодії у програмному забезпеченні на основі Python. Поліпшення швидкодії вдалося досягти збиранням інтерпретатора з ключем -fno-semantic-interposition
. Оскільки у новій версії немає семантичної інтерпозиції, внутрішня прив’язка з libpython
до libpython
є безпосередньою і швидшою.
Наслідком цього є те, що якщо у користувачів Fedora виникне потреба у використанні LD_PRELOAD
для перевизначення символів у libpython
, рекомендованим способом є збирання нетипового Python без -fno-semantic-interposition
. Втім, використання LD_PRELOAD
для перевизначення в інших бібліотеках (наприклад glibc) усе ще можливе.
Python 2 вилучено
Підтримку Python 2 у основній гілці розробки Python припинено 1 січня 2020 року. З цієї причини у Fedora 32 вилучено пакунки Python 2.
Наступними пакунками більше не можна скористатися:
-
Пакунок
python2
і усі його підпакунки. -
Усі пакунки, для роботи яки потрібен Python 2.
-
Усі пакунки, яким потрібен Python 2 для збирання.
У Fedora 32 усе ще є застарілий пакунок python27
. Цей пакунок призначено для розробників, яким потрібна підтримка Python 2, і користувачів, яким потрібно користуватися програмним забезпеченням, яке залежить від Python 2.
Пакунок python27
є дещо обмеженим, порівняно із оригінальним пакунком python2
:
-
У пакунка немає підпакунків. Усі дані збережено у єдиному пакунку.
-
У пакунка немає діагностичної частини, яку раніше можна було встановити за допомогою пакунка
python2-debug
. -
У пакунку немає виконуваного файла
/usr/bin/python
. -
Усі спеціалізовані зворотно сумісні Provides вилучено (цей пакунок не призначено для формування на його основі залежностей).
Підтримку Nose визнано застарілою
Підтримку Nose визнано застарілою. Втім, починаючи з цієї версії, можна скористатися пакунком python3-nose
зі сховищ пакунків Fedora. Випуску, у якому буде вилучено пакунок python3-nose
ще не визначено.
Користувачам і пакувальникам залежних пакунків варто переходити на python3-pytest
або python3-nose2
.
Зауваження щодо перенесення встановлених користувачами пакунків pip
При оновленні Fedora 30 або 31до Fedora 32 версія основного інтерпретатора Python змінюється з 3.7 на 3.8. Якщо у вашій системі було встановлено якісь пакунки Python за допомогою pip
, вам слід виконати наведені нижче дії для перенесення їх до нової версії:
-
Встановіть попередню основну версію Python:
sudo dnf install python3.7
-
Отримайте
pip
для попередньої основної версії Python:python3.7 -m ensurepip --user
-
Огляньте список встановлених пакунків:
python3.7 -m pip list
-
Збережіть список із вказаними версіями:
python3.7 -m pip freeze > installed.txt
-
Встановіть ті самі пакунки у новій типовій версії:
python3 -m pip install --user -r installed.txt
-
Вилучіть встановлені користувачем пакунки для 3.7 (вказана команда забезпечує вилучення файлів у
~/.local/bin
):python3.7 -m pip uninstall $(python3.7 -m pip list --user | cut -d" " -f1)
-
Якщо хочете, вилучіть тепер порожню структуру каталогів:
rm -rf ~/.local/lib/python3.7/
-
Якщо хочете, вилучіть непотрібну версію Python:
sudo dnf remove python3.7
Крім того, якщо ви встановлювали пакунки pip
за допомогою sudo
, віддайте вказані нижче команди до виконання останнього кроку із вилученням `python3.7`, або знову тимчасово встановіть цю версію:
-
Отримайте
pip
для попередньої основної версії Python дляroot
:sudo python3.7 -m ensurepip
-
Огляньте список загальносистемних встановлених пакунків:
sudo python3.7 -m pip list
-
Вилучіть встановлені для 3.7 пакунки (команда забезпечує належне вилучення файлів з
/usr/local/bin
):sudo python3.7 -m pip uninstall $(python3.7 -m pip list | cut -d" " -f1)
-
Якщо хочете, вилучіть тепер порожню структуру каталогів:
sudo rm -rf /usr/local/lib*/python3.7/
Якщо ви виконали першу процедуру, пакунки вже встановлено для вашого облікового запису користувача (цей варіант є бажаним). Не використовуйте надалі |
Want to help? Learn how to contribute to Fedora Docs ›