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.
- 1
Circunstancialmente, em alguns casos, wheels podem ser usados como um formato de tempo de execução importável, embora não haja suporte oficial a isso no momento.