2010-09-27 21 views
5

Czy standardową bibliotekę Pythona stanowi standard w tym sensie, że jeśli Python jest zainstalowany, to jest również instalowana biblioteka standardowa?Czy standardowa biblioteka Pythona jest naprawdę standardowa?

documentation czyta

Dla uniksowych systemów operacyjnych Python jest zwykle dostarczany jako zbiór pakietów, więc może być konieczne użycie narzędzia opakowanie dostarczone z systemem operacyjnym w celu uzyskania niektórych lub wszystkich opcjonalne komponenty.

Standardowa biblioteka index wymienia jako opcjonalne opcjonalne "opcjonalne usługi systemu operacyjnego", o ile wiem.

Czy wszystko inne jest zawsze dostępne na platformie, jeśli zainstalowany jest Python? Jeśli nie, czego można się spodziewać na najbardziej popularnych (Windows, Mac OS X, Linux)?

PS: Uczę uczniów w klasie Pythona i chciałbym móc im powiedzieć, że Python zawsze zawiera baterie; ma to praktyczne znaczenie, ponieważ dla nich (gdy przybywają do nowego laboratorium lub korzystają z nowej maszyny, przydatne jest, aby wiedzieli, czego mogą oczekiwać w zakresie dostępności standardowych modułów).

+0

Czy sprawdziłeś kilka instalacji, aby zobaczyć, co masz? Nad czym uczysz? Na co patrzysz? –

+0

@ S.Lott: Chcę przekazać uczniom, czego * oni * mogą się spodziewać po przybyciu do nowego (laboratoryjnego) środowiska i muszą używać dowolnego komputera, z którego pochodzą. Jest to przydatna, praktyczna informacja dla nich. (Zadbałem o zainstalowanie wszystkiego, czego studenci potrzebują dla klasy na maszynach, z których korzystają.) – EOL

Odpowiedz

7

To nie jest kwestia Pythona. Możesz nauczyć, że baterie są włączone. Oni są.

To dystrybucje, które są niekompletne.

Nie podobało nam się, że Red Hat Enterprise Linux ma stare wersje Pythona. Istnieją jednak przepisy na ulepszenia.

Powszechną praktyką w zakresie bezpieczeństwa jest wyłączanie wszystkich pakietów programistycznych, co powoduje, że Python jest niekompletny. Jest to często spotykana sytuacja poza Pythonem i poza podstawową dystrybucją Linuksa.

Baterie są dostarczane w normalnych warunkach. Ale bardzo łatwo jest wyjąć niektóre lub wszystkie baterie. Wiele organizacji będzie - z różnych powodów - tworzyć niekompletne biblioteki.

To nie jest Python. To środowiska, które są niekompletne.

+0

+1: Dobra uwaga. Sądzę, że morale polega na tym, że czasami trzeba iść do sklepu i kupić baterie w Pythonie; ale dobre jest to, że zawsze mają je w magazynie. :) – EOL

2

To zależy od pakietu pakującego dystrybucję. Na przykład w systemie Debian moduły profilowania profile i cprofile są instalowane osobno jako python-profiler. Inne moduły mogą być również rozdzielone w ten sposób w różnych dystrybucjach.

5

Ogólnie tak - wszystko, co nie jest wymienione w sekcji opcjonalnej, będzie zawsze dostępne.

Są to tylko niektóre z rzeczy, które mogą się różnić zależnie od systemu operacyjnego do instalacji OS: http://docs.python.org/library/someos.html

Prawdopodobnie nie będzie z nich korzystać, chyba że robisz dość zaawansowanego programowania.

+2

To nie jest prawdą w przypadku instalacji Uniksa.Na przykład, instalacja portu lang/python27 w FreeBSD * nie * dostarczy ci modułów bsddb, gdbm, sqlite3 lub tkinter. Każda z nich zależy od innych pakietów, które nie są instalowane domyślnie. –

+0

@ Just Some Guy - Dzięki za dodanie tego. Dla kompletności, czy jest to pełna lista tego, co ma zewnętrzne zależności lub tylko kilka przykładów? – dkamins

+1

Myślę, że jest to kompleksowe dla FreeBSD - jest oparte na komunikacie wyświetlanym użytkownikom po zainstalowaniu Pythona. Ubuntu ma również pakiety "python" i "python-minimal", z "minimalnym" pomijaniem tego samego rodzaju rzeczy, które robi FreeBSD. Nie jestem pewien, który (jeśli którykolwiek z nich) zostanie zainstalowany domyślnie. –

Powiązane problemy