Lançamento do PyOxidizer para empacotar projetos Python em executáveis autossuficientes

Apresentado primeira versão da utilidade PyOxidizer, que permite empacotar projetos em Python em um arquivo executável independente, incluindo o interpretador Python e todas as bibliotecas e recursos necessários para a execução. Esses arquivos podem ser executados em ambientes sem a ferramenta Python instalada ou independentemente da versão necessária do Python. O PyOxidizer também pode gerar arquivos executáveis vinculados estaticamente, que não estão ligados às bibliotecas do sistema. O código do projeto é escrito em Rust e é distribuído sob a licença MPL (Mozilla Public License) 2.0.

O projeto é baseado no módulo homônimo para Rust, que permite incorporar o interpretador Python em programas Rust para executar scripts Python. O PyOxidizer agora ultrapassou a função de um complemento para Rust e se posiciona como uma ferramenta acessível para uma audiência mais ampla, permitindo a criação e distribuição de pacotes autossuficientes com Python. Para aqueles que não precisam distribuir aplicativos como arquivos executáveis, o PyOxidizer oferece a capacidade de gerar bibliotecas que podem ser vinculadas a qualquer aplicativo para incorporar o interpretador Python e o conjunto necessário de extensões.

Para os usuários finais, a entrega do projeto em um único arquivo executável simplifica significativamente a instalação e elimina a necessidade de resolver dependências, algo particularmente relevante para projetos complexos em Python, como editores de vídeo. Para os desenvolvedores de aplicativos, o PyOxidizer permite economizar tempo na logística de entrega do aplicativo, sem a necessidade de usar diferentes ferramentas para criar pacotes para diferentes sistemas operacionais.

O uso das compilações propostas também tem um impacto positivo no desempenho — os arquivos gerados pelo PyOxidizer são executados mais rapidamente do que ao usar o Python do sistema, devido à eliminação da importação e definição de módulos básicos. No PyOxidizer, os módulos são importados da memória — todos os módulos incorporados são carregados na memória de imediato e, em seguida, utilizados sem acessar o disco. Em testes, o tempo de inicialização do aplicativo ao usar o PyOxidizer é reduzido pela metade.

Entre os projetos semelhantes existentes, podemos destacar: PyInstaller (extrai o arquivo para um diretório temporário e importa os módulos dele), py2exe (ligado à plataforma Windows e requer a distribuição de vários arquivos), py2app (ligado ao macOS), cx-freeze (requer empacotamento de dependências separadas), Shiv e PEX (forma um pacote no formato zip e requer a presença do Python no sistema), Nuitka (compila o código, em vez de embutir o interpretador), pynsist (ligado ao Windows), PyRun (desenvolvimento proprietário sem explicação dos princípios de funcionamento).

Na atual fase de desenvolvimento, o PyOxidizer já implementou a funcionalidade básica para gerar arquivos executáveis para Windows, macOS e Linux. Entre as funcionalidades ainda não disponíveis, foi destacado destacam-se a ausência de um ambiente de construção padrão, a impossibilidade de gerar pacotes nos formatos MSI, DMG e deb/rpm, problemas com o empacotamento de projetos que incluem extensões complexas em C, a falta de comandos para suporte de entrega (como «pyoxidizer add», «pyoxidizer analyze» e «pyoxidizer upgrade»), suporte limitado para Terminfo e Readline, ausência de suporte para versões diferentes do Python 3.7, falta de suporte para compressão de recursos e a impossibilidade de cross-compilation.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster