Quais são as vantagens de empacotar seu python biblioteca / aplicativo como um arquivo .egg?

votos
24

Eu li alguns sobre arquivos .egg e tenho notado-los em meu diretório lib mas quais são as vantagens / desvantagens de usar, em seguida, como um desenvolvedor?

Publicado 07/09/2008 em 00:35
fonte usuário
Em outras línguas...                            


6 respostas

votos
29

A partir da comunidade Kit Python Enterprise Application :

"Os ovos são para Pythons como Jars são Java ..."

Ovos Python são uma maneira de agrupar informações adicionais com um projeto de Python, que permite que as dependências do projeto a ser verificado e satisfeito em tempo de execução, bem como permitindo que projetos para fornecer plugins para outros projetos. Existem vários formatos binários que incorporam os ovos, mas o mais comum é o formato de arquivo zip '.egg', porque é uma conveniente para a distribuição de projetos. Todo o suporte formatos, incluindo dados específicos do pacote, metadados todo o projeto, extensões C e código Python.

Os principais benefícios de Python ovos são:

  • Eles permitem que ferramentas como o "Easy Install" gerenciador de pacotes Python

  • arquivos .egg são um formato de "instalação zero" para um pacote de Python; não é necessária nenhuma configuração ou passo instalar, basta colocá-los em PYTHONPATH ou sys.path e usá-los (pode exigir o tempo de execução instalados se forem utilizadas extensões C ou arquivos de dados)

  • Eles podem incluir metadados de pacotes, como os outros ovos que dependem

  • Eles permitem que os "pacotes de namespace" (pacotes que contêm apenas outros pacotes) seja dividido em distribuições separadas (por exemplo zope. , Torcido. , Pico. * Pacotes podem ser distribuídos como ovos separados, ao contrário de pacotes normais que devem ser sempre colocadas sob o mesmo diretório pai. Isso permite que hoje são enormes pacotes monolíticas a serem distribuídos como componentes separados.)

  • Eles permitem que aplicações ou bibliotecas para especificar a versão necessária de uma biblioteca, de modo que você pode, por exemplo require ( "Twisted-Internet> = 2.0") antes de fazer uma twisted.internet importação.

  • Eles são uma grande formato para a distribuição de extensões ou plug-ins para aplicações extensíveis e estruturas (tais como Trac, que usa ovos para plugins como de 0.9b1), porque o tempo de execução de ovo fornece APIs simples para localizar os ovos e encontrar seus pontos de entrada anunciados (similar ao conceito de "ponto de extensão" do Eclipse).

  • Há também outros benefícios que podem vir de ter um formato padronizado, similar aos benefícios do formato "jar" de Java.

-Adão

Respondeu 07/09/2008 em 00:39
fonte usuário

votos
4

Um ovo por si só não é melhor do que uma liberação fonte adequada. A parte boa é o tratamento de dependência. Como pacotes Debian ou RPM, você pode dizer que depender de outros ovos e eles vão ser instalado automaticamente (através pypi.python.org ).

Um segundo comentário: o formato de ovo em si é um formato embalado binário. pacotes Python normais que consistem em código python apenas são melhor distribuídas como "fonte lançamentos", por isso "setup.py sdist python" que resultam em um .tar.gz. Estes também são comumente chamados de "ovos" quando carregado para PyPI.

Onde você precisa ovos binários: quando você está empacotando alguns extensão de código C. Você vai precisar de vários ovos binários (a 32bit unix um, um janelas um, etc.) então.

Respondeu 13/10/2008 em 15:40
fonte usuário

votos
3

Os ovos são uma boa maneira de distribuir aplicações python. Pense nisso como um arquivo .deb independente de plataforma que irá instalar todas as dependências e outros enfeites. A vantagem é que é fácil de usar para o usuário final. A desvantagem é que ela pode ser complicado para empacotar o seu aplicativo como um arquivo .egg.

Você também deve oferecer um meio alternativo de instalação, além de .eggs. Há algumas pessoas que não gostam de usar ovos, porque eles não gostam da idéia de uma instalação programa de software qualquer software que quer. Estes geralmente tendem a ser os tipos sysadmin.

Respondeu 07/09/2008 em 00:43
fonte usuário

votos
2

arquivos .egg são, basicamente, uma boa maneira de implementar a aplicação python. Você pode pensar nisso como algo como arquivos .jar para Java.

Mais informações aqui .

Respondeu 07/09/2008 em 00:39
fonte usuário

votos
1

Para programas simples em Python, você provavelmente não precisará usar ovos. Distribuir os arquivos .py matérias devem ser suficientes; é como distribuir arquivos de origem para o GNU / Linux. Você também pode usar os vários "empacotadores" OS (como py2exe ou py2app) para criar .exe, .dmg, ou outros arquivos para diferentes sistemas operacionais.

programas mais complexos, por exemplo, Django, praticamente exigem ovos devido aos vários módulos e dependências necessárias.

Respondeu 26/09/2008 em 08:01
fonte usuário

votos
1

Faça o que fizer, não pare de distribuir sua aplicação, também, como um arquivo tar, como é que o formato packagable mais fácil para os sistemas operacionais com uma sysetem pacote.

Respondeu 26/09/2008 em 06:26
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more