2010-01-12 21 views
383

Jestem nowy w Pythonie i próbuję zrozumieć, jak działają jego pakiety. Przypuszczalnie "jaja" są rodzajem mechanizmu pakowania, ale jaki byłby krótki przegląd roli, jaką odgrywają, a może niektóre informacje na temat tego, dlaczego są one użyteczne i jak je tworzyć?Co to jest jajko Python?

Odpowiedz

423

Uwaga: Egg packaging has been superseded by Wheel packaging.

samo pojęcie jako plik w Javie .jar, to plik .zip z niektórych plików metadanych przemianowany .egg, za dystrybucję kodu jako wiązkach.

Specifically: The Internal Structure of Python Eggs

A "Python jajo" jest logiczną strukturę urzeczywistniającym wydanie konkretnej wersji projektu Python, zawierający jego kod, zasoby, i metadanych. Istnieje wiele formatów, których można użyć do fizycznego kodowania jaj w Pythonie, a inne można rozwijać. Jednak kluczową zasadą jaj w Pythonie jest , którą można importować. Oznacza to, że aplikacja Python powinna mieć możliwość łatwego i skutecznego sprawdzenia, jakie jaja są obecne w systemie, oraz , aby zapewnić możliwość importowania żądanej zawartości jajek.

sformatować .egg jest dobrze nadaje się do dystrybucji i łatwego deinstalacji lub aktualizacji kodu, ponieważ projekt jest zasadniczo samowystarczalny w jednym katalogu lub pliku, unmingled z kodem lub zasobów wszelkich innych projektach. Umożliwia to również jednoczesną instalację wielu wersji projektu, tak aby poszczególne programy mogły wybrać wersje, które chcą zastosować.

32

Plik .egg jest formatem dystrybucji pakietów w języku Python. Jest to tylko alternatywa dla dystrybucji kodu źródłowego lub systemu Windows exe. Należy jednak zauważyć, że dla czystego pliku Python plik .egg jest całkowicie wieloplatformowy.

Sam plik .egg jest w istocie plikiem .zip. Jeśli zmienisz rozszerzenie na "zip", zobaczysz, że będzie zawierało foldery wewnątrz archiwum.

Ponadto, jeśli masz plik .egg, można zainstalować go jako pakiet używając easy_install

Przykład: Aby utworzyć plik .egg dla katalogu powiedzieć mymath która sama może mieć kilka skryptów Python, wykonaj następujące czynności krok:

# setup.py 
from setuptools import setup, find_packages 
setup(
    name = "mymath", 
    version = "0.1", 
    packages = find_packages() 
    ) 

Następnie z terminalu zrobić:

$ python setup.py bdist_egg 

To będzie generować wiele wyjść, ale kiedy to zakończono zobaczysz, że masz trzy nowe foldery: kompilacji, gmina i mymath.egg-info. Jedynym folder dbamy o to dist folder, w którym znajdą Państwo plik .egg, mymath-0.1-py3.5.egg z domyślną python (instalacja) numer wersji (kopalnia tutaj: 3,5)

Źródło: Python library blog

0

"Jajko" to importowany format pojedynczego pliku dla projektów związanych z Pythonem.

"The Quick Guide to Python Eggs" zauważa, że ​​„Jaja są do pyton jak słoiki mają Java ...”

Jaja faktycznie są bogatsze niż słoików; zawierają ciekawe metadane, takie jak szczegóły dotyczące licencji, zależności związane z wydaniami itd.