Skip to content
logo Devstock
  • O nas
  • Moduły Akademii
    • Moduł 1
    • Moduł 2
    • Moduł 3
    • Pozostałe moduły
  • Kursy AI i IT
    • Agenci AI
    • Pierwsza Misja AI (Podstawy)
    • Automatyzacje z n8n 2.0
    • Frontend Master 2026
  • Blog
  • Kontakt
  • O nas
  • Moduły Akademii
    • Moduł 1
    • Moduł 2
    • Moduł 3
    • Pozostałe moduły
  • Kursy AI i IT
    • Agenci AI
    • Pierwsza Misja AI (Podstawy)
    • Automatyzacje z n8n 2.0
    • Frontend Master 2026
  • Blog
  • Kontakt

Bądź na bieżąco ze światem IT, AI i automatyzacjiCo wtorek: IT, AI i bezpieczeństwo w jednym mailu

Co wtorek jeden mail: newsy z branży, praktyczne tipy, narzędzia warte poznania i to, co trzeba wiedzieć o wyciekach i bezpieczeństwie IT.


Trafia do ponad 6 tys. skrzynek. Zero spamu, wypisujesz się jednym kliknięciem.

    Programowanie i Technologie Webowe

    Python 3.15: co nowego i co z polskimi znakami w plikach

    • 09 paź, 2026
    • Komentarze 0
    Python 3.15 - monitor na biurku z edytorem kodu w Pythonie i logo Pythona, obok klawiatura, kubek i rośliny w jasnym pokoju

    Python 3.15, wydany 9 października 2026 roku, czyta pliki tekstowe domyślnie w kodowaniu UTF-8, przez co na polskim Windowsie stary plik CSV z polskimi znakami może zatrzymać skrypt błędem UnicodeDecodeError. Zmiana dotyczy tylko kodu, który przy otwieraniu pliku nie podaje kodowania, i da się ją cofnąć jedną zmienną środowiskową.

    Co nowego w Pythonie 3.15

    Nowa wersja to stabilne wydanie języka, które według strony wydania na python.org zbiera ponad 5,6 tysiąca zmian od ponad tysiąca osób. Kolejne wydania poprawkowe mają się ukazywać mniej więcej co dwa miesiące przez dwa lata. Łatki bezpieczeństwa wersja dostanie do około października 2031 roku (harmonogram w PEP 790). PEP to dokument z propozycją zmiany w języku, a numer PEP-a służy jako jej nazwa.

    Najważniejsze nowości według dokumentu “What’s New”, czyli oficjalnego opisu zmian:

    ZmianaNumerCo daje w praktyce
    UTF-8 jako domyślne kodowaniePEP 686open('plik.txt') czyta w UTF-8 na każdym systemie
    Leniwe importy (lazy import)PEP 810moduł ładuje się dopiero przy pierwszym użyciu, program szybciej startuje
    Wbudowany frozendictPEP 814słownik, którego nie da się zmienić po utworzeniu
    Wbudowany sentinelPEP 661czytelne wartości specjalne, na przykład “brak argumentu”
    Rozpakowanie w wyrażeniach listowychPEP 798[*L for L in lists] spłaszcza listę list
    Pakiet profiling i profiler TachyonPEP 799pomiar wydajności działającego programu bez jego restartu
    Ulepszony kompilator JITbez PEPnadal eksperymentalny, wyniki zależą od platformy

    Dla większości osób uczących się programowania odczuwalna będzie tylko pierwsza zmiana, bo dotyczy zwykłego czytania plików.

    Frontend Master 2026 · Kodożercy

    Frontend dla osób, które chcą pisać kod, nie tylko prompty

    Frontend Master 2026 to pakiet, który daje Ci fundamenty potrzebne w pierwszej pracy frontendowej. HTML, CSS, JavaScript, Git – polskie wideo, projekty, ścieżka od początku do deploy.

    Zobacz program kursów →
    Frontend Master 2026 - Kodożercy

    UTF-8 domyślnie: co się zmienia na Windowsie

    Od wersji 3.15 Python używa UTF-8 dla plików tekstowych, standardowego wejścia i wyjścia oraz potoków, niezależnie od ustawień systemu. Opisuje to PEP 686. UTF-8 to sposób zapisu znaków, w którym działa niemal cały internet, a także JSON, YAML i większość edytorów.

    Według PEP 686 zmiana dotyczy głównie użytkowników Windowsa, bo większość systemów uniksowych, w tym Linux, i tak korzysta z ustawień regionalnych w UTF-8. Windows nadal ma systemową stronę kodową ANSI, czyli starszą tabelę znaków przypisaną do języka systemu. Do wersji 3.14 Python używał jej przy plikach otwieranych bez podanego kodowania. Według dokumentacji Pythona dla Windowsa konsola i nazwy plików korzystały z UTF-8 już wcześniej, więc zmiana dotyczy zawartości plików i danych przesyłanych między programami.

    Sprawdziliśmy to na komputerze z polskim Windowsem. Python 3.14 zwracał tam cp1250 jako kodowanie systemowe. To strona kodowa Windows-1250, którą Microsoft opisuje w tabeli identyfikatorów stron kodowych jako środkowoeuropejską. Nowa wersja na tym samym komputerze nadal widzi cp1250 jako kodowanie systemu, ale do plików bierze już UTF-8.

    Co się dzieje z plikami CSV i TXT z polskimi znakami

    Plik z polskimi znakami zapisany w Windows-1250 nowa wersja czyta inaczej niż 3.14. W naszym teście plik CSV z wierszem “Łucja;Żółkiewska;Łódź” zapisany w cp1250 i otwarty przez open() bez parametru encoding zakończył się w 3.15 błędem UnicodeDecodeError: 'utf-8' codec can't decode byte 0xea. Ten sam plik w 3.14 czytał się poprawnie.

    Działa to też w drugą stronę. Plik zapisany w UTF-8, na przykład pobrany z internetu albo wygenerowany przez inny program, w Pythonie 3.14 na polskim Windowsie w naszym teście kończył się błędem. Przy innych plikach złe odczytanie może dać “krzaki”, czyli losowe znaki zamiast liter. W 3.15 czyta się poprawnie bez żadnych zmian w kodzie.

    PEP 686 ostrzega przy tym przed najgorszym scenariuszem. Oprócz błędu albo krzaków możliwe jest “ciche uszkodzenie danych”, gdy program nie przerwie pracy, tylko zapisze plik z błędnymi znakami. Dlatego skrypty, które przetwarzają pliki z księgowości, starszych systemów albo eksportów zapisanych w stronie kodowej Windows, warto sprawdzić przed przejściem na nową wersję.

    Jak sprawdzić, czy twój kod jest na to podatny

    Najprościej jest włączyć ostrzeżenie EncodingWarning, które Python ma od wersji 3.10. Uruchom skrypt tak:

    python -X warn_default_encoding moj_skrypt.py
    

    Każde miejsce, w którym kod otwiera plik bez podanego kodowania, wypisze ostrzeżenie EncodingWarning: 'encoding' argument not specified z numerem linii. To samo daje zmienna środowiskowa PYTHONWARNDEFAULTENCODING.

    Kodowanie systemu sprawdzisz poleceniem:

    python -c "import locale; print(locale.getencoding())"
    

    Jeśli wynik to cp1250, a twoje pliki pochodzą ze starszych programów na tym komputerze, zmiana w 3.15 najpewniej cię dotyczy.

    Jak obejść zmianę kodowania w Pythonie 3.15

    Najlepsza poprawka to podanie kodowania wprost przy każdym open(). Dokumentacja Pythona zaleca to od dawna, bo kod działa wtedy tak samo w każdej wersji:

    # plik zapisany w starej stronie kodowej Windows
    with open("dane.csv", encoding="cp1250") as f:
        tekst = f.read()
    
    # plik w UTF-8
    with open("raport.txt", encoding="utf-8") as f:
        tekst = f.read()
    

    Gdy skrypt ma czytać pliki w kodowaniu systemu, na którym akurat działa, służy do tego encoding="locale". Ta opcja działa od Pythona 3.10.

    Jeśli kodu nie da się szybko poprawić, można przywrócić stare zachowanie zmienną PYTHONUTF8=0 albo opcją python -X utf8=0 skrypt.py. W naszym teście plik w cp1250 przeczytał się wtedy w 3.15 poprawnie. To rozwiązanie tymczasowe, bo działa na cały program, a nie na jeden plik.

    Leniwe importy, frozendict i sentinel w przykładach

    Leniwy import odkłada ładowanie modułu do chwili, gdy kod pierwszy raz z niego skorzysta:

    lazy import json
    
    print("Start programu")       # json nie jest jeszcze załadowany
    dane = json.loads('{"a": 1}') # tu Python dopiero ładuje json
    

    Sprawdziliśmy to w 3.15.0: przed wywołaniem json.loads() modułu nie było w sys.modules, po wywołaniu był. Słowo lazy wolno użyć tylko na poziomie modułu, a nie wewnątrz funkcji ani bloku try.

    frozendict to słownik, którego nie da się zmienić po utworzeniu. Próba przypisania d['z'] = 3 kończy się błędem TypeError. Taki słownik może być kluczem w innym słowniku albo elementem zbioru, jeśli jego zawartość też jest niezmienna. sentinel tworzy unikalne wartości specjalne, na przykład oznaczenie “argumentu nie podano”, które wcześniej programiści robili przez object().

    JIT, Tachyon i wersja bez GIL: co jest eksperymentem

    Kompilator JIT, który zamienia często wykonywany kod na kod maszynowy w trakcie działania programu, nadal jest eksperymentalny. Według What’s New w testach pyperformance dał średnio 7-8% przyspieszenia względem standardowego interpretera na Linuksie x86-64 i 11-12% względem interpretera tail-calling na macOS z procesorem ARM. Ta sama dokumentacja podaje, że w zależności od testu wynik waha się od około 15% spowolnienia do ponad dwukrotnego przyspieszenia. Nie jest to więc obietnica, że każdy program przyspieszy.

    Oficjalne 64-bitowe instalatory dla Windowsa używają nowego wariantu interpretera (tail-calling), skompilowanego w Visual Studio 2026. Twórcy zmierzyli na jednym komputerze z procesorem AMD 15-20% przyspieszenia w testach pyperformance.

    Instalator dla macOS domyślnie dokłada wersję Pythona bez blokady GIL (free-threading), która pozwala wątkom działać naprawdę równolegle. To osobny wariant obok zwykłego Pythona, a nie jego zastąpienie. Nowy profiler Tachyon w pakiecie profiling.sampling podłącza się do działającego programu i próbkuje go nawet milion razy na sekundę.

    Uwaga dla macOS 27: IDLE i tkinter mogą się zawieszać

    Python.org ostrzega użytkowników macOS 27.0. IDLE i inne programy z okienkami na bibliotece tkinter mogą się zawieszać przy oknach dialogowych otwieranych z menu, na przykład w ustawieniach IDLE. Według python.org przyczyną jest zmiana w samym macOS, a problem dotyczy wszystkich obecnych wersji Pythona, nie tylko 3.15. Kto uczy się na IDLE albo korzysta z programów na tkinter, może odłożyć aktualizację do macOS 27.0 do czasu poprawki. Postęp prac widać w zgłoszeniu #158053 na GitHubie.

    Jak zainstalować Pythona 3.15 na Windowsie

    Na Windowsie zalecanym sposobem jest Python install manager, czyli osobny program do instalowania i aktualizowania wersji Pythona:

    1. Pobierz Python install manager ze strony python.org/downloads albo zainstaluj go ze sklepu Microsoft Store. Według dokumentacji obie wersje są identyczne.
    2. Otwórz terminal i wpisz py install 3.15.
    3. Sprawdź listę zainstalowanych wersji poleceniem py list.
    4. Jeśli masz już wersje instalowane tym programem, py install --update zaktualizuje je do najnowszych wydań.

    Starsze wersje zostają na dysku, a polecenie py -V:3.14 nadal uruchomi poprzednią. Na stronie wydania jest jeszcze klasyczny instalator Windows (64-bit), ale dokumentacja oznacza go jako przestarzały od wersji 3.14 i zapowiada, że dla Pythona 3.16 już go nie będzie.

    Jeśli dopiero zaczynasz, zajrzyj do tekstu po co uczyć się Pythona, skoro AI pisze kod, a przy wyborze pierwszego języka przyda się porównanie Python vs Java.

    FAQ

    Czy muszę od razu przechodzić na Pythona 3.15?

    Nie. Według harmonogramu z PEP 745 Python 3.14 dostaje poprawki mniej więcej do premiery wersji 3.16, a łatki bezpieczeństwa do około października 2030 roku. Projekty w firmach zwykle czekają, aż biblioteki, z których korzystają, potwierdzą zgodność z nową wersją. Do nauki od zera można instalować 3.15 od razu.

    Czy nowy Python usuwa GIL?

    Nie. Zwykły Python w wersji 3.15 nadal ma GIL, czyli blokadę, która pozwala wykonywać kod Pythona tylko jednemu wątkowi naraz. Wersja bez GIL istnieje obok niego jako osobny wariant, a na macOS instalator dodaje ją domyślnie.

    Podsumowanie

    Python 3.15 jest dostępny od 9 października 2026 roku i dostanie poprawki bezpieczeństwa do około października 2031 roku. Najwięcej praktycznych skutków ma zmiana domyślnego kodowania na UTF-8. Na polskim Windowsie skrypt czytający bez parametru encoding stare pliki zapisane w Windows-1250 może przerwać pracę błędem albo przekłamać polskie znaki, za to pliki w UTF-8 zaczną się czytać poprawnie. Przed aktualizacją uruchom swoje skrypty z -X warn_default_encoding, dopisz kodowanie przy każdym open(), a w razie pilnej potrzeby użyj PYTHONUTF8=0. Leniwe importy, frozendict i sentinel to wygodne dodatki dla programistów. Szybszy JIT pozostaje eksperymentem. Użytkownicy IDLE na macOS powinni wstrzymać się z aktualizacją do macOS 27.0.

    Newsletter · DevstockAcademy & Kodożercy

    Bądź na bieżąco ze światem IT, AI i automatyzacji

    Co wtorek: newsy z branży, praktyczne tipy i narzędzia które warto znać. Zero spamu.


    Udostępnij na:
    Mateusz Wojdalski

    Specjalista SEO i content marketingu w Devstock. Zajmuję się strategią treści, automatyzacją procesów marketingowych i wdrożeniami AI w codziennej pracy. Badam nowe narzędzia, adaptuję je do realnych zadań i piszę o tym, co faktycznie działa.

    Sieci neuronowe: co to jest, jak się uczą i rodzaje
    Zawody przyszłości 2030: lista z raportów WEF i Barometru
    Pudelko kursu Agenci AI od Kodozercow z robotem i schematem przeplywu agentow
    Banner reklamowy Frontend Master 2026

    Najnowsze wpisy

    Thumb
    Przelew BLIK na telefon nie doszedł? Co
    10 paź, 2026
    Thumb
    Kolory HTML i CSS: kody HEX, RGB,
    10 paź, 2026
    Thumb
    Komputer kwantowy: co to jest, jak działa,
    10 paź, 2026
    Thumb
    Spis treści w Wordzie: jak zrobić go
    10 paź, 2026
    Thumb
    Ciąg Fibonacciego: wzór, tabela i kod w
    10 paź, 2026

    Kategorie

    • Aktualności i Wydarzenia (126)
    • Bezpieczeństwo i Jakość (254)
    • Branża IT i Nowe Technologie (282)
    • Design i User Experience (4)
    • Narzędzia i Automatyzacja (209)
    • Programowanie i Technologie Webowe (98)
    • Rozwój kariery i Edukacja (51)

    Tagi

    5G AI Architektura Cyberbezpieczeństwo Feedback Frontend Git IoT JavaScript Motywacja Nauka efektywna Optymalizacja i wydajność Programowanie React.JS Rozwój osobisty WebDevelopment
    Logo FitBody Center Warszawa

    Odkryj zabiegi Endermologii LPG Infinity w FitBody Center Warszawa

    Maszyna zabiegowa - endermologia lpg infinity
    banner-reklamowy-frontend-master
    Pudelko kursu Agenci AI od Kodozercow z robotem i schematem przeplywu agentow
    Group-5638-1

    Devstock – Akademia programowania z gwarancją pracy

    🏠 ul. Bronowska 5a,
    03-995 Warszawa
    📞 +48 517 313 589
    ✉️ contact@devstockacademy.pl

    Linki

    • Poznaj firmę Devstock
    • Wejdź do społeczności Devstock
    • Polityka prywatności
    • Regulamin

    FitBody Center

    Strona

    • Strona główna
    • Kontakt

    Newsletter

    Bądź na bieżąco, otrzymuj darmową wiedzę i poznaj nas lepiej!


    Icon-facebook Icon-linkedin2 Icon-instagram Icon-youtube Tiktok
    Copyright 2026 Devstock. Wszelkie prawa zastrzeżone
    Devstock AcademyDevstock Academy
    Sign inSign up

    Sign in

    Don’t have an account? Sign up
    Lost your password?

    Sign up

    Already have an account? Sign in