Co to jest jajo pytona?

Jestem nowy w Pythonie i próbuję zrozumieć, jak działają jego Pakiety. Przypuszczalnie eggs to jakiś mechanizm pakowania, ale jaki byłby szybki przegląd roli, jaką odgrywają i może być trochę informacji o tym, dlaczego są przydatne i jak je tworzyć?

Author: HDJEMAI, 2010-01-12

4 answers

Uwaga: opakowanie jaj zostało zastąpione opakowaniem kołowym.

Ten sam koncept co Plik .jar w Javie, jest to plik .zip z niektórymi plikami metadanych przemianowanymi na .egg, służący do dystrybucji kodu jako pakiety.

W szczególności: struktura wewnętrzna jaj pytona

"Python egg" jest logiczną strukturą ucieleśniającą uwolnienie specyficzna wersja projektu Pythona, zawierająca jego kod, zasoby, i metadanych. Tam są wieloma formatami, które można wykorzystać do fizycznie zakodować jajko Pythona, a inne mogą być rozwijane. Jednakże, kluczową zasadą jaj pytona jest to, że powinny one być wykrywalne i importowalne. Oznacza to, że aplikacja Pythona powinna mieć możliwość łatwo i skutecznie dowiedzieć się, jakie jaja są obecne w systemie, a aby upewnić się, że pożądana zawartość jaj jest możliwa do importowania.

Format .egg jest dobrze dostosowany do dystrybucji i łatwego Deinstalacja lub uaktualnienie kodu, ponieważ projekt jest zasadniczo samowystarczalny w ramach jednego katalogu lub pliku, niezwiązany z żadnym kod lub zasoby innych projektów. Umożliwia również posiadanie zainstalowanych jednocześnie wielu wersji projektu, tak aby poszczególne programy mogą wybrać wersje, których chcą używać.

 552
Author: jefe2000,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-16 19:27:22

Plik .egg jest formatem dystrybucji pakietów Pythona. Jest to po prostu alternatywa dla dystrybucji kodu źródłowego lub Windows exe. Należy jednak pamiętać, że dla pure Python Plik .egg jest całkowicie wieloplatformowy.

Plik .egg jest zasadniczo plikiem .zip. Jeśli zmienisz rozszerzenie na " zip", zobaczysz, że będzie ono miało foldery wewnątrz archiwum.

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

Przykład: Na Utwórz plik .egg dla katalogu say mymath, który sam może mieć kilka skryptów Pythona, wykonaj następujący krok:

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

Następnie, z terminala do:

 $ python setup.py bdist_egg

To wygeneruje wiele wyjść, ale po zakończeniu zobaczysz, że masz trzy nowe foldery: build, dist i mymath.jajko-info . Jedyny folder, na którym nam zależy to folder dist, W Którym Znajdziesz swój plik .egg, mymath-0.1-py3.5.egg Z Twój domyślny numer wersji Pythona (instalacja) (mój tutaj: 3.5)

Źródło: Blog Biblioteki Pythona

 98
Author: kmario23,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-11 15:43:29

Jaja Pythona są sposobem łączenia dodatkowych informacji z projektem Pythona, który pozwala sprawdzać i spełniać zależności projektu w czasie wykonywania, a także pozwala projektom dostarczać wtyczki do innych projektów. Istnieje kilka formatów binarnych, które uosabiają jaja, ale najczęściej jest to '.format egg ' zipfile, ponieważ jest wygodny do dystrybucji projektów. Obsługa wszystkich formatów, w tym danych specyficznych dla pakietu, metadanych dla całego projektu, rozszerzeń C i Pythona kod.

Najprostszym sposobem na zainstalowanie i użycie Pythona eggs jest użycie Menedżera pakietów Pythona" Easy Install", który znajdzie, pobierze, zbuduje i zainstaluje dla Ciebie eggs; wszystko, co robisz, to powiesz mu nazwę (i opcjonalnie wersję) projektu Pythona, którego chcesz użyć.

Python eggs może być używany z Pythonem 2.3 i nowszymi, i może być zbudowany przy użyciu pakietu setuptools (patrz Python Subversion sandbox dla kodu źródłowego lub strona EasyInstall dla bieżącej instalacji instrukcje).

Podstawowe zalety jaj pytona to:

  • Umożliwiają one narzędzia takie jak" Easy Install " Python package manager

  • .pliki egg są formatem "zerowej instalacji" dla pakietu Pythona; nie jest wymagany krok kompilacji ani instalacji, po prostu umieść je na PYTHONPATH lub sys.ścieżka i korzystanie z nich (może wymagać zainstalowanego środowiska uruchomieniowego, jeśli używane są rozszerzenia C lub Pliki Danych)

  • Mogą one zawierać metadane pakietów, takie jak inne jaja, które zależą on

  • Pozwalają one na dzielenie" pakietów przestrzeni nazw " (pakietów, które zawierają tylko inne pakiety) na oddzielne dystrybucje (np. zope., , szczyt.* pakiety mogą być dystrybuowane jako osobne jaja, w przeciwieństwie do zwykłych pakietów, które muszą być zawsze umieszczone w tym samym katalogu nadrzędnym. Pozwala to na dystrybucję ogromnych, monolitycznych pakietów jako oddzielnych komponentów.)

  • Pozwalają aplikacjom lub bibliotekom określić potrzebną wersję biblioteki, dzięki czemu można np. wymagać ("Twisted-Internet>=2.0") przed wykonaniem importu twisted.internet.

  • Są świetnym formatem do dystrybucji rozszerzeń lub wtyczek do rozszerzalnych aplikacji i frameworków (takich jak Trac, który używa eggs dla wtyczek od 0.9b1), ponieważ środowisko uruchomieniowe egg zapewnia proste API do lokalizowania eggs i znajdowania reklamowanych punktów wejścia (podobnie do koncepcji Eclipse "extension point").

Istnieją również inne korzyści, które mogą pochodzą z posiadania znormalizowanego formatu, podobnego do zalet formatu " jar " Javy.

 8
Author: prosti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-13 01:07:01

" Egg " jest formatem dystrybucji importowalnej dla projektów związanych z Pythonem.

"The Quick Guide to Python Eggs" zauważa, że "jaja są dla pytonów tak jak słoiki są dla Javy..."

Jaja są w rzeczywistości bogatsze niż słoiki; zawierają ciekawe metadane, takie jak szczegóły licencji, zależności od wydania itp.

 2
Author: Aerin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-26 05:26:14