Python

Kinerja Python yang diperbaiki

Bergantung pada beban kerja, sampai dengan 27% perbaikan kinerja kini teramati dalam perangkat lunak berbasis Python. Peningkatan kinerja dicapai dengan membangun interpreter Python dengan -fno-semantic-interposition. Karena sekarang tidak ada interposisi semantik, pencarian simbol internal dari libpython ke pustaka libpython langsung dan lebih cepat.

Sebagai konsekuensi, bila pengguna Fedora perlu memakai LD_PRELOAD untuk menimpa simbol dalam libpython, cara yang disarankan adalah untuk membangun Python ubahan tanpa -fno-semantic-interposition. Namun, masih mungkin memakai LD_PRELOAD untuk menimpa simbol dalam pustaka lain (misalnya dalam glibc).

Python 2 telah dihapus

Upstream Python berhenti mendukung Python 2 pada 1 Januari 2020. Karena alasan ini, Fedora 32 menghapus paket Python 2.

Paket-paket berikut tidak tersedia lagi:

  • Paket python2 dan semua sub paketnya.

  • Semua paket yang memerlukan Python 2 untuk berjalan.

  • Semua paket yang memerlukan Python 2 untuk membangunnya.

Fedora 32 masih menyediakan suatu paket warisan python27. Paket ini ditujukan untuk para pengembang yang memerlukan dukungan Python 2 dan untuk para pengguna yang memerlukan perangkat lunak yang bergantung kepada Python 2.

Paket python27 memiliki beberapa keterbatasan dibanding dengan paket python2 yang asli:

  • Paket tidak memiliki sub paket. Semua konten disimpan dalam paket tunggal.

  • Paket tidak memiliki build debug, yang sebelumnya tersedia sebagai python2-debug.

  • Paket tidak menyediakan biner /usr/bin/python.

  • Sebarang Provides yang kompatibel ke belakang dihapus (paket ini tidak dimaksudkan untuk menjadi kebergantungan).

Dukungan yang tidak berlaku lagi untuk Nose

Dukungan untuk Nose kini tidak berlaku lagi. Namun untuk saat ini, paket python3-nose terus tersedia dalam repositori Fedora. Belum ada rilis spesifik yang ditarget untuk menghapus paket python3-nose.

Pengguna dan pemaket dari paket-paket yang bergantung dianjurkan untuk berpindah ke python3-pytest atau python3-nose2.

Catatan tentang memigrasi paket-paket pip yang dipasang pengguna

Ketika Anda meningkatkan dari Fedora 30 atau 31 ke Fedora 32, versi interpreter Python utama berubah dari 3.7 ke 3.8. Bila Anda memasang sebarang paket Python memakai pip, Anda mesti mengikuti prosedur berikut secara lengkap untuk memigrasi mereka ke versi baru:

  1. Memasang versi Python utama sebelumnya:

    sudo dnf install python3.7
  2. Mengambil pip bagi versi Python utama sebelumnya:

    python3.7 -m ensurepip --user
  3. Amati paket-paket yang dipasang:

    python3.7 -m pip list
  4. Simpan daftar dengan versi spesifik:

    python3.7 -m pip freeze > installed.txt
  5. Pasang paket-paket yang sama bagi versi yang kini baku:

    python3 -m pip install --user -r installed.txt
  6. Membongkar paket yang dipasang pengguna bagi 3.7; ini memastikan penghapusan berkas secara benar dalam ~/.local/bin:

    python3.7 -m pip uninstall $(python3.7 -m pip list --user | cut -d" " -f1)
  7. Opsional, membersihkan struktur direktori yang kini kosong:

    rm -rf ~/.local/lib/python3.7/
  8. Opsional, menghapus versi Python yang tidak diperlukan:

    sudo dnf remove python3.7

Sebagai tambahan, bila Anda telah memasang sebarang paket pip memakai sudo, jalankan perintah berikut sebelum menjalankan langkah terakhir di atas yang menghapus `python3.7`, atau pasang lagi itu sementara:

  1. Ambil pip bagi versi Python utama yang sebelumnya bagi root:

    sudo python3.7 -m ensurepip
  2. Amati paket-paket yang dipasang oleh sistem:

    sudo python3.7 -m pip list
  3. Membongkar paket yang dipasang bagi 3.7; ini memastikan penghapusan berkas secara benar dalam /usr/local/bin:

    sudo python3.7 -m pip uninstall $(python3.7 -m pip list | cut -d" " -f1)
  4. Opsional, membersihkan struktur direktori yang kini kosong:

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

Bila Anda mengikut prosedur pertama, paket-paket telah terpasang bagi akun pengguna Anda, yang merupakan opsi yang lebih disukai. Hindari memakai sudo pip di masa mendatang; instruksi-instruksi ini hanya ditujukan untuk memulihkan pengguna yang telah memakai sudo pip di masa lalu.