Różnice między wersjami Framework i non-Framework Pythona w systemie Mac OS X

Pytanie

Jakie są różnice między kompilacją Framework a nie-ramową kompilacją (tj. Standardową kompilacją UNIX) Pythona na Mac OS X? Jakie są zalety i wady każdego z nich?

Wstępne badania

Oto informacje, które znalazłem przed wysłaniem tego pytania:

[Pythonmac-SIG] Dlaczego potrzebna jest kompilacja Framework PythonaB. Grainger: „Wydaje mi się, że jeśli chcesz zrobić coś z rodzimym GUI Maca, potrzebna jest kompilacja Pythona Framework. Czy moje zrozumienie jest poprawne?”C. Barker: „Dość dużo - aby uzyskać dostęp do GUI Maca, aplikacja musi znajdować się w odpowiednim pakiecie aplikacji dla komputerów Mac.Połączenie programisty Apple: definicja struktury„Framework jest pakietem (katalogiem strukturalnym), który zawiera dynamiczną bibliotekę współdzieloną wraz z powiązanymi zasobami, takimi jak pliki nib, pliki obrazów i pliki nagłówkowe. Podczas tworzenia aplikacji projekt łączy się z jednym lub kilkoma frameworkami. na przykład projekty aplikacji iPhone domyślnie łączą się z platformami Foundation, UIKit i Core Graphics, a Twój kod uzyskuje dostęp do możliwości struktury poprzez interfejs programowania aplikacji (API), który jest publikowany przez framework poprzez pliki nagłówkowe. jest współdzielony dynamicznie, wiele aplikacji może jednocześnie uzyskać dostęp do kodu i zasobów frameworka. System ładuje kod i zasoby frameworka do pamięci, w razie potrzeby, i dzieli jedną kopię zasobu między wszystkie aplikacje. "Przewodnik programowania ramowego: Co to są ramy?„Struktury oferują następujące zalety w stosunku do bibliotek połączonych statycznie i innych typów dynamicznych bibliotek współdzielonych:Grupy ramowe powiązane, ale oddzielne zasoby razem. To grupowanie ułatwia instalację, deinstalację i zlokalizowanie tych zasobów.Ramy mogą obejmować szerszą gamę typów zasobów niż biblioteki. Na przykład framework może zawierać odpowiednie pliki nagłówkowe i dokumentację. Wiele wersji frameworka może być zawartych w tym samym pakiecie. Dzięki temu możliwe jest zachowanie wstecznej kompatybilności ze starszymi programami.Tylko jedna kopia zasobów tylko do odczytu w środowisku znajduje się fizycznie w pamięci w dowolnym momencie, niezależnie od tego, ile procesów korzysta z tych zasobów. To współdzielenie zasobów zmniejsza ślad pamięci systemu i pomaga zwiększyć wydajność. ”tło

Przed systemem Mac OS X 10.6 Snow Leopard nie myślałem o tym zbyt wiele, ponieważ po prostu pobrałem i zainstalowałemPython 2.6.2 Obraz dysku instalatora Mac, która jest budową frameworka, i zajmij się moją działalnością używając virtualenv, pip, itp. Jednak ze zmianami w Snow Leopard na 64-bit, gcc itp. zauważyłem pewne problemy, które sprawiły, że chciałem zbudować / skompiluj sam Python 2.6.2+ ze źródła, co prowadzi mnie do pytania o różnice i zalety / wady budowania Pythona jako struktury MacOSX | Darwin.

questionAnswers(5)

yourAnswerToTheQuestion