Python

İyileştirilmiş Python performansı

İş yüküne bağlı olarak, Python tabanlı yazılımlarda artık %27’ye varan performans iyileştirmeleri gözlenmektedir. Performans iyileştirmeleri, Python yorumlayıcısının -fno-semantic-interposition seçeneğiyle derlenmesiyle elde edilmektedir. Artık bir anlamsal müdahale olmadığı için, libpython ile libpython kütüphanesi arasındaki dahili sembol aramaları doğrudan ve daha hızlıdır.

Sonuçlara göre, Fedora kullanıcılarının libpython da bulunan sembolleri kullanım dışı yapmaları için LD_PRELOAD yapmaları gerekiyorsa, önerilen yol -fno-semantic-interposition olmadan özel bir Python derlemesi oluşturmaktır. Bununla birlikte, diğer kütüphanlerdeki sembolleri (mesela glibc) geçersiz kılmak için LD_PRELOAD kullanmak da hala uygundur.

Python 2 kaldırıldı

Python projesi 1 Ocak 2020’de Python 2’yi desteklemeyi bıraktı. Bu nedenle, Fedora 32’de Python 2 paketleri kaldırıldı.

Aşağıdaki paketler artık kullanılabilir değil:

  • python2 paketi ve tüm alt paketleri.

  • Çalıştırmak için Python 2 gerektiren tüm paketler.

  • Oluşturmak için Python 2 gerektiren tüm paketler.

Fedora 32 yine de geriye dönük bir python27 paketi sağlamaktadır. Bu paket, Python 2’yi desteklemesi gereken geliştiriciler ve Python 2’ye bağımlı yazılımlar kullanmaya ihtiyaç duyan kullanıcılar için tasarlanmıştır.

python27 paketinin orijinal python2 paketiyle karşılaştırıldığında birtakım kısıtlamaları bulunmaktadır:

  • Paketin alt paketleri yoktur. Tüm içerik tek bir pakete dahil edilmiştir.

  • Paket, daha önce python2-debug olarak kullanılabilen hata ayıklama derlemesi sağlamamaktadır.

  • Paket, /usr/bin/python programını sağlamamaktadır.

  • Tüm 'özel' geriye dönük uyumlu sağlayıcılar kaldırıldı (bu paketin üste bağlı olması amaçlanmamıştır).

Nose için destek kaldırdı

Nose için destek kaldırıldı. Bununla birlikte, python3-nose paketi hala Fedora depolarında erişime açık olacak. Henüz herhangi bir sürümde python3-nose paketinin kaldırılması planlanmadı.

Kullanıcıların ve bağımlı paketlerin paketleyicilerinin python3-pytest veya `python3-nose2`e geçmeleri önerilir.

Kullanıcı tarafından kurulan pip paketlerinin taşınmasıyla ilgili notlar

When you upgrade from Fedora 30 or 31 to Fedora 32, the main Python interpreter version changes from 3.7 to 3.8. If you have any Python packages installed using pip, you must complete the following procedure to migrate them to the new version:

  1. Önceki ana Python sürümünü kurun:

    sudo dnf install python3.7
  2. Önceki ana Python sürümü için pip edinin:

    python3.7 -m ensurepip --user
  3. Kurulu paketleri gözlemleyin:

    python3.7 -m pip list
  4. Listeyi belirli sürümlerle kaydedin:

    python3.7 -m pip freeze > installed.txt
  5. Sonra öntanımlı sürüm için aynı paketleri kurun:

    python3 -m pip install --user -r kurulu-paketler.txt
  6. Uninstall user-installed packages for 3.7; this ensures proper removal of files in ~/.local/bin:

    python3.7 -m pip uninstall $(python3.7 -m pip list --user | cut -d" " -f1)
  7. İsteğe bağlı olarak, artık boş olan dizin yapısını temizleyin:

    rm -rf ~/.local/lib/python3.7/
  8. İsteğe bağlı olarak, artık gerek duyulmayan Python sürümünü kaldırın:

    sudo dnf remove python3.7

Additionally, if you have any pip packages installed using sudo, run the following commands before running the final step above which removes `python3.7`, or install it again temporarily:

  1. root için önceki ana Python sürümü için pip edinin:

    sudo python3.7 -m ensurepip
  2. Sistem genelinde kurulan paketleri gözlemleyin:

    sudo python3.7 -m pip list
  3. Uninstall installed packages for 3.7; this ensures proper removal of files in /usr/local/bin:

    sudo python3.7 -m pip uninstall $(python3.7 -m pip list | cut -d" " -f1)
  4. İsteğe bağlı olarak, artık boş olan dizin yapısını temizleyin:

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

İlk anlatılan işlemleri izlediyseniz, paketler kullanıcı hesabınız için zaten kurulmuştur, bu tercih edilen seçenektir. Gelecekte sudo pip kullanmaktan kaçının; bu talimatlar yalnızca geçmişte sudo pip kullanmış olan kullanıcıları kurtarmaya yöneliktir.