PyOxidizer, um utilitário para empacotar projetos Python em arquivos executáveis

PyOxidizer

Alguns dias atrás os desenvolvedores introduziram a primeira versão do utilitário PyOxidizer, que é oferecido como um utilitário que pode ser usado para empacotar um projeto Python como um arquivo executável separado, incluindo o interpretador Python e todas as bibliotecas e recursos necessários.

Esses arquivos podem ser executados em ambientes sem o kit de ferramentas Python instalado ou independentemente da disponibilidade da versão necessária do Python.

O PyOxidizer também pode gerar executáveis ​​relacionados estaticamente que não estão associados às bibliotecas do sistema. O código do projeto é escrito na linguagem Rust e é distribuído sob a MPL (Mozilla Public License) 2.0.

Sobre o PyOxidizer?

O projeto é baseado no módulo de mesmo nome para a linguagem Rust, que permite a você embutir um interpretador Python em programas Rust para executar scripts Python neles.

PyOxidizer Agora, ele foi além do plug-in para Rust e está posicionado como uma ferramenta disponível para um público mais amplo para a construção e distribuição de pacotes autônomos do Python.

PyOxidizer um utilitário que visa resolver o problema de como distribuir aplicativos Python.

Para aqueles que não precisam distribuir aplicativos na forma de um arquivo executável, o PyOxidizer oferece oportunidades para gerar bibliotecas adequadas para vincular a qualquer aplicativo para incorporar o interpretador Python e o conjunto necessário de extensões neles.

A distribuição de aplicativos Python é geralmente considerada um problema não resolvido, pois Russel Keith-Magee identificou a distribuição de código como uma ameaça existencial à longevidade, para Python. Em suas palavras, Python nunca teve um histórico consistente de como eu forneço meu código para outra pessoa, especialmente se essa outra pessoa não for um desenvolvedor e apenas quiser usar meu aplicativo.

Para usuários finais, entregar um projeto na forma de um único arquivo executável Isso simplifica muito a instalação e elimina o trabalho de seleção de dependências, o que é importante, por exemplo, para projetos Python complexos, como editores de vídeo.

Por outro lado Para desenvolvedores de aplicativos, o PyOxidizer permite que economizem tempo organizando a entrega de um aplicativo sem ter que usar ferramentas diferentes para criar pacotes para sistemas operacionais diferentes.

Como funciona o PyOxidizer?

Usando as construções propostas também tem um efeito positivo no desempenho: os arquivos gerados no PyOxidizer são executados mais rapidamente do que no sistema Python, removendo importações e definindo módulos básicos.

No PyOxidizer, módulos são importados da memória (todos os módulos integrados são carregados imediatamente na memória e então usados ​​sem acesso ao disco). Nos testes, o tempo de inicialização do aplicativo com PyOxidizer é reduzido pela metade.

A partir de projetos semelhantes existentes, é possível observar: PyInstaller (descompacta o arquivo em um diretório temporário e importa os módulos dele).

  • Py2exe (vinculado à plataforma Windows e requer distribuição de vários arquivos), py2app (vinculado ao macOS)
  • Cx-freeze (requer pacote de dependência separado), Shiv e PEX (forma um pacote zip e requer Python no sistema)
  • Nuitka (compila o código, não o interpretador embutido), pynsist (vinculado ao Windows), PyRun (desenvolvimento proprietário sem explicação dos princípios de funcionamento).

No estágio atual de desenvolvimento, O PyOxidizer já implementou a funcionalidade principal para gerar arquivos executáveis ​​para Windows, macOS e Linux.

Dos recursos de longo alcance notados a ausência de um ambiente de compilação padrão, a incapacidade de gerar um pacote no formato MSI, DMG e deb / rpm, com problemas de empacotamento de projeto envolvendo extensões complexas para a linguagem C.

Embora a ausência de instruções para oferecer suporte à entrega ("pyoxidizer add", "pyoxidizer analyze" e "pyoxidizer upgrade") e suporte limitado para Terminfo e Readline, falta de suporte para versões diferentes do Python 3.7, falta de suporte para compressão de recursos, incapacidade de compilação cruzada.

fonte: https://pyoxidizer.readthedocs.io


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.