2010-09-27 5 views
5

Ist die Python-Standardbibliothek in dem Sinne standardisiert, dass, wenn Python installiert ist, auch die Standardbibliothek installiert ist?Ist die Python-Standardbibliothek wirklich Standard?

Die documentation liest

Für Unix-artige Betriebssysteme Python wird normalerweise als eine Sammlung von Paketen zur Verfügung gestellt, so kann es notwendig sein, die Verpackungswerkzeug mit dem Betriebssystem zu nutzen, einige oder alle zu erhalten, die optionalen Komponenten.

Die Standardbibliothek index listet als optionale Option nur die "optionalen Betriebssystemdienste" auf, soweit ich das beurteilen kann.

Also, ist alles andere immer auf einer Plattform verfügbar, wenn Python installiert ist? Wenn nicht, was ist bei den gebräuchlichsten zu erwarten (Windows, Mac OS X, Linux)?

PS: Ich unterrichte eine Python-Klasse für Doktoranden, und ich würde ihnen gerne erzählen, dass Python immer mit Batterien geliefert wird; Dies ist für sie von praktischer Bedeutung (wenn sie in einem neuen Labor ankommen oder eine neue Maschine verwenden, ist es für sie nützlich zu wissen, was sie in Bezug auf die Verfügbarkeit von Standardmodulen erwarten können).

+0

Haben Sie ein paar Installationen überprüft, um zu sehen, was Sie haben? Worüber unterrichtest du? Was hast du angeschaut? –

+0

@ S.Lott: Ich möchte die Schüler wissen lassen, was * sie * erwarten können, wenn sie in einer neuen (Labor-) Umgebung ankommen und den Computer benutzen müssen, den sie bekommen. Das ist nützliche, praktische Information für sie. (Ich habe mich darum gekümmert, alles, was die Schüler für die Klasse brauchen, auf den Maschinen zu installieren, die sie benutzen.) – EOL

Antwort

7

Es ist kein Python-Problem. Sie können lehren, dass die Batterien enthalten sind. Sie sind.

Es sind die Verteilungen, die unvollständig sind.

Wir waren unzufrieden mit Red Hat Enterprise Linux mit alten Versionen von Python. Es gibt jedoch Rezepte für Upgrades.

Es ist eine gängige Sicherheitsvorkehrung, alle Entwicklerpakete zu deaktivieren, wodurch Python unvollständig bleibt. Dies ist eine häufige Situation außerhalb von Python und außerhalb der essentiellen Linux-Distribution.

Batterien sind unter normalen Umständen enthalten. Es ist aber auch sehr einfach, einige oder alle Batterien zu entfernen. Und viele Organisationen werden - aus verschiedenen Gründen - unvollständige Bibliotheken erstellen.

Es ist nicht Python. Es sind die Umgebungen, die unvollständig sind.

+0

+1: Guter Punkt. Ich vermute, dass die Moral ist, dass man manchmal in den Laden gehen und Python-Batterien holen muss; aber das Gute ist, dass sie sie immer auf Lager haben. :) – EOL

2

Es hängt vom Distribution Packager ab. Auf Debian werden die Profiling-Module profile und cprofile separat als python-profiler installiert. Andere Module können auch so auf verschiedenen Distributionen getrennt werden.

5

Allgemein ja - alles, was nicht im optionalen Abschnitt aufgeführt ist, ist immer verfügbar.

Dies sind nur einige der Dinge, die von OS Betriebssystem-Installation variieren kann: http://docs.python.org/library/someos.html

Sie wahrscheinlich diese verwenden, werden nicht, es sei denn Sie ziemlich weit fortgeschritten Programmierung zu tun.

+2

Das trifft unter Unix-Installationen nicht wirklich zu.Wenn Sie beispielsweise den Port lang/python27 unter FreeBSD installieren, erhalten Sie * nicht * die Module bsddb, gdbm, sqlite3 oder tkinter. Jeder davon hängt von anderen Paketen ab, die nicht standardmäßig installiert sind. –

+0

@Just Some Guy - Danke, dass du das hinzugefügt hast. Zur Vollständigkeit, ist das eine umfassende Liste von was hat externe Abhängigkeiten oder nur ein paar Beispiele? – dkamins

+1

Ich denke, das ist umfassend für FreeBSD - es basiert auf der Nachricht, die Benutzern nach der Installation von Python angezeigt wird. Ubuntu hat auch "python" und "python-minimal" -Pakete, wobei "minimal" die gleichen Dinge überspringt wie FreeBSD. Ich bin mir nicht sicher, ob (falls) eines davon standardmäßig installiert wird. –