Python 3.15.0 chega com lazy imports e frozendict
O Python 3.15.0 chegou em 9 de outubro com 5.643 commits de 1.012 colaboradores: lazy imports, um frozendict embutido, UTF-8 por padrão e um JIT mais rápido.
4 min de leitura

Em números
- commits since Python 3.14
- 5,643
- contributors to the release
- 1,012
- JIT speedup on x86-64 Linux, geometric mean
- 7-8%
- roughly when security updates end, per PEP 602
- 2031
O Python 3.15.0 foi lançado em 9 de outubro de 2026, a versão anual de recursos da linguagem. Ele traz lazy imports explícitos, um tipo frozendict embutido e UTF-8 como codificação de texto padrão. "O Python 3.15.0 é a mais nova versão principal da linguagem de programação Python", escreveu o gerente de lançamento Hugo van Kemenade no Python Insider. O lançamento reuniu 5.643 commits de 1.012 colaboradores. Ele chega uma semana depois do planejado inicialmente, após um terceiro release candidate surpresa corrigir bugs de última hora nos lazy imports.
Os principais recursos
Cada grande mudança vem de uma PEP, uma Python Enhancement Proposal, o documento de design de um recurso. As notas de versão listam estas:
| PEP | Recurso | O que faz |
|---|---|---|
| 810 | Lazy imports explícitos | Permite que o código adie o carregamento de um módulo até o primeiro uso, para uma inicialização mais rápida |
| 814 | frozendict | Um dicionário embutido que não pode ser alterado depois de criado |
| 661 | Tipo sentinela | Um tipo embutido para valores marcadores únicos |
| 686 | UTF-8 por padrão | O Python lê e grava texto como UTF-8, a menos que receba outra instrução |
| 798 | Desempacotamento em comprehensions | Permite o desempacotamento dentro de comprehensions |
| 829 | Arquivos de inicialização de pacotes | Novos arquivos de configuração de inicialização para pacotes |
| 799 | Pacote de profiling | Adiciona o profiler por amostragem Tachyon |
| 803, 820, 793 | ABI estável free-threaded | Uma única extensão compilada pode funcionar em builds free-threaded |
| 831 | Frame pointers | Ativados por padrão nas builds |
A tipagem também recebe três mudanças: as PEPs 728, 747 e 800. O compilador JIT experimental, as mensagens de erro e as cores da linha de comando também foram melhorados, segundo a página What's New.
A mudança para UTF-8 importa mais no Windows, informa o Linux Compatible. Código que dependia da antiga codificação padrão pode voltar a ela com PYTHONUTF8=0.
Mais rápido, mas não em todo lugar
O JIT, um compilador que transforma código Python executado com frequência em código de máquina enquanto ele roda, agora está mais rápido. O Python Insider informa estes ganhos em média geométrica:
| Plataforma | Ganho do JIT |
|---|---|
| Linux x86-64 | 7-8% sobre o interpretador padrão |
| macOS AArch64 | 11-12% sobre o interpretador tail-calling |
Os resultados variam muito conforme a carga de trabalho. Benchmarks individuais vão de cerca de 15% mais lentos a mais de 100% mais rápidos, informa o Linux Compatible.
Os instaladores oficiais também mudaram. As builds de 64 bits para Windows agora usam o interpretador tail-calling, uma forma mais rápida de executar o loop principal do Python. O Linux Compatible estima esse ganho em 15-20%, e em até 40% para scripts pequenos, de longa duração e em Python puro. Os instaladores oficiais para macOS agora incluem suporte a free-threading por padrão. O free-threading permite que o Python rode código em vários núcleos de CPU ao mesmo tempo, sem o global interpreter lock.
Problema conhecido no macOS 27
Há um alerta para usuários de Mac. No macOS 27.0, o IDLE e outros apps tkinter "podem travar ao usar um comando de menu do aplicativo que abre uma caixa de diálogo", diz o Python Insider. O app então precisa ser encerrado à força.
A equipe do Python atribui o problema a uma mudança no sistema operacional e acredita que ele afeta todas as versões do Tk, o toolkit que o tkinter usa. Ele é acompanhado como issue #158053. A página da versão sugere adiar o macOS 27.0 se você depende de apps Tk.
O que foi descontinuado
Três coisas estão de saída, segundo as notas de versão e o Linux Compatible:
- O módulo
profile, escrito em Python puro, está descontinuado e será removido no Python 3.17. OcProfilecontinua. - Linhas que executam código em arquivos
.pthestão descontinuadas em favor dos novos arquivos de inicialização da PEP 829. - As funções C
PyGILState_*recebem soft deprecation, mas não são removidas.
O Python 3.15 recebe dois anos de correções de bugs e, depois, correções de segurança até cerca de outubro de 2031, informa o Linux Compatible, seguindo o calendário da PEP 602.
O que isso significa para desenvolvedores
- Experimente lazy imports em ferramentas que iniciam devagar. Ferramentas de linha de comando e apps com imports pesados são os que mais ganham. Teste qualquer módulo que dependa de código executado no momento do import, já que adiar o import muda quando esse código roda.
- Verifique o tratamento de texto no Windows. O UTF-8 agora é o padrão. Rode os seus testes de entrada e saída de arquivos no Windows e use
PYTHONUTF8=0só como solução provisória. - Use frozendict para configurações fixas. Um dicionário que não pode ser alterado é mais seguro para configuração e pode ser usado onde um valor hashable é necessário.
- Faça benchmarks antes de contar com o JIT. Os ganhos médios são modestos, e algumas cargas de trabalho ficam mais lentas. Meça o seu próprio código.
- Adie o macOS 27.0 se você usa tkinter. O IDLE e os apps Tk podem travar até o bug ser corrigido.
- Abandone o
profileagora. Ele desaparece no Python 3.17, então mude para ocProfileou para o novo pacote de profiling.
Antes de atualizar sistemas de produção, confirme que as suas principais dependências suportam o 3.15.
Fontes
- Python 3.15.0 final is here! - Python Insider
- Python Release Python 3.15.0 - Python.org
- Python 3.15.0 (final) is here! - Discussions on Python.org
- What's new in Python 3.15 - Python documentation
- Python 3.15.0 Is Out: Lazy Imports, frozendict, and Faster Speeds - Linux Compatible
Artigos relacionados

Versão final do Python 3.15.0 passa para 9 de outubro após rc3 surpresa
O Python 3.15.0rc3 saiu em 2 de outubro para corrigir bugs de última hora nos lazy imports, o que adia em uma semana a versão final do Python 3.15.0, agora para 9 de outubro de 2026.

Python 3.10 chega ao fim da vida útil e cinco versões corrigem 8 CVEs
O Python 3.10.22 é o último lançamento da linha 3.10: o branch chegou ao fim da vida útil em 1º de outubro de 2026, enquanto 3.11 a 3.14 recebiam correções para até oito CVEs.

Python Language Summit 2026 debate Rust e um novo GC
Os relatos do Python Language Summit 2026 saíram: 47 desenvolvedores do núcleo discutiram Rust no CPython, um novo coletor de lixo, um namespace std e uma inicialização mais rápida.