Wheel vs Egg#

Wheel e Egg são formatos de empacotamento que visam oferecer suporte ao caso de uso de necessidade de um artefato de instalação que não requer construção ou compilação, o que pode ser caro em testes e fluxos de trabalho de produção.

O formato Egg foi introduzido por Setuptools em 2004, enquanto o formato Wheel foi introduzido pela PEP 427 em 2012.

Wheel é atualmente considerado o padrão para o empacotamento contruído e binário para Python.

Aqui está uma análise das diferenças importantes entre Wheel e Egg.

  • Wheel tem uma especificação de padrão oficial. Egg não tinha.

  • Wheel é um formato de distribuição, ou seja, um formato de empacotamento. [1] Egg era um formato de distribuição e um formato de instalação em tempo de execução (se deixado compactado), e foi projetado para ser importável.

  • Os arquivos Wheel não incluem arquivos .pyc. Portanto, quando a distribuição contém apenas arquivos Python (ou seja, sem extensões compiladas) e é compatível com Python 2 e 3, é possível que um wheel seja “universal”, semelhante a um sdist.

  • Wheel usa diretórios .dist-info compatíveis com a PEP376. Egg usava .egg-info.

  • Wheel tem uma convenção de nomenclatura de arquivo mais rica. Um único arquivo de wheel pode indicar sua compatibilidade com várias versões e implementações da linguagem Python, ABIs e arquiteturas de sistema.

  • Wheel é versionado. Cada arquivo wheel contém a versão da especificação wheel e a implementação que a empacotou.

  • Wheel é internamente organizado pelo tipo de caminho sysconfig, portanto tornando mais fácil converter para outros formatos.

  • Envio de Egg foram desativados para o envio para o PyPI, conforme PEP 715. Leia o aviso de descontinuação para mais informações.