platform — Πρόσβαση στα αναγνωριστικά δεδομένα της υποκείμενης πλατφόρμας

Πηγαίος κώδικας:Lib/platform.py


Σημείωση

Συγκεκριμένες πλατφόρμες καταγεγραμμένες αλφαβητικά, με το Linux να περιλαμβάνεται στην ενότητα Unix.

Cross Platform

platform.architecture(executable=sys.executable,bits='',linkage='')

Υποβάλλει ερώτημα στο δεδομένο εκτελέσιμο αρχείο (προεπιλογή είναι το εκτελέσιμο του δυαδικού διερμηνέα Python) για διάφορες πληροφορίες αρχιτεκτονικής.

Επιστρέφει μια πλειάδα(bits,linkage) που περιέχει πληροφορίες για την αρχιτεκτονική των bit και την μορφή σύνδεσης που χρησιμοποιείται για το εκτελέσιμο αρχείο. Και οι δύο τιμές επιστρέφονται ως συμβολοσειρές.

Οι τιμές που δεν μπορούν να προσδιοριστούν επιστρέφονται όπως δίνονται από τις προκαθορισμένες παραμέτρους. Αν η τιμή του bits δοθεί ως'', τότε χρησιμοποιείται τοsizeof(pointer) (ή τοsizeof(long) στην έκδοση Python < 1.5.2) ως δείκτης για το υποστηριζόμενο μέγεθος δεικτών.

Η συνάρτηση βασίζεται στην εντολή του συστήματοςfile για την εκτέλεση της πραγματικής εργασίας. Αυτή είναι διαθέσιμη στα περισσότερα αν όχι σε όλα τα συστήματα Unix και σε ορισμένα μη-Unix συστήματα, και μόνο αν το εκτελέσιμο δείχνει στον διερμηνέα της Python. Χρησιμοποιούνται εύλογες προεπιλεγμένες τιμές όταν οι παραπάνω προϋποθέσεις δεν πληρούνται.

Σημείωση

Στο macOS (και ίσως και σε άλλες πλατφόρμες), τα εκτελέσιμα αρχεία μπορεί να είναι καθολικά αρχεία που περιέχουν μέσα πολλαπλές αρχιτεκτονικές.

Για να προσδιορίσετε αν ο τρέχων διερμηνέας είναι 64-bit, είναι πιο αξιόπιστο να ελέγξετε το χαρακτηριστικόsys.maxsize:

is_64bits=sys.maxsize>2**32
platform.machine()

Επιστρέφει τον τύπο του μηχανήματος, π.χ.'AMD64'. Επιστρέφει μια κενή συμβολοσειρά αν η τιμή δεν μπορεί να προσδιοριστεί.

platform.node()

Επιστρέφει το όνομα δικτύου του υπολογιστή (ενδέχεται να μην είναι πλήρως καθορισμένο!). Επιστρέφει μια κενή συμβολοσειρά, αν η τιμή δεν μπορεί να προσδιοριστεί.

platform.platform(aliased=False,terse=False)

Επιστρέφει μια συμβολοσειρά που προσδιορίζει την υποκείμενη πλατφόρμα με όσο το δυνατόν περισσότερες χρήσιμες πληροφορίες.

Η έξοδος προορίζεται να είναιφιλική - ευανάγνωστη από τον άνθρωπο και όχι αναγνώσιμη από μηχανή. Μπορεί να φαίνεται διαφορετική σε διαφορετικές πλατφόρμες και αυτό είναι σκόπιμο.

Αν τοaliased είναι αληθές, η συνάρτηση θα χρησιμοποιήσει ψευδώνυμα για διάφορες πλατφόρμες που αναφέρουν ονόματα συστημάτων διαφορετικά από τα κοινά τους ονόματα, για παράδειγμα το SunOS θα αναφέρεται ως Solaris. Η συνάρτησηsystem_alias() χρησιμοποιείται για την υλοποίηση αυτού.

Αν τοterse οριστεί σε αληθές, η συνάρτηση επιστρέφει μόνο τις απολύτως απαραίτητες πληροφορίες για την αναγνώριση της πλατφόρμας.

Άλλαξε στην έκδοση 3.8:Στο macOS, η συνάρτηση χρησιμοποιεί τώρα τηνmac_ver(), αν αυτή επιστρέψει μη κενή συμβολοσειρά έκδοσης, για να λάβει την έκδοση του macOS αντί για την έκδοση Darwin.

platform.processor()

Επιστρέφει το (πραγματικό) όνομα του επεξεργαστή, π.χ.'amdk6'.

Επιστρέφεται μια κενή συμβολοσειρά εάν η τιμή δεν μπορεί να προσδιοριστεί. Σημειώστε ότι πολλές πλατφόρμες δεν παρέχουν αυτή την πληροφορία ή απλώς επιστρέφουν την ίδια τιμή με αυτή τηςmachine(). Το NetBSD το κάνει αυτό.

platform.python_build()

Επιστρέφει μια πλειάδα(buildno,builddate) που δηλώνει τον αριθμό κατασκευής και την ημερομηνία κατασκευής της Python ως συμβολοσειρές.

platform.python_compiler()

Επιστρέφει μια συμβολοσειρά που προσδιορίζει τον μεταγλωττιστή που χρησιμοποιήθηκε για την μεταγλώττιση της Python.

platform.python_branch()

Επιστρέφει μια συμβολοσειρά που προσδιορίζει το branch του συστήματος ελέγχου εκδόσεων (SCM) της υλοποίησης της Python.

platform.python_implementation()

Επιστρέφει μια συμβολοσειρά που προσδιορίζει την υλοποίηση της Python. Πιθανές τιμές είναι: “CPython”, “IronPython”, “Jython”, “PyPy”.

platform.python_revision()

Επιστρέφει μια συμβολοσειρά που προσδιορίζει την αναθεώρηση SCM της υλοποίησης της Python.

platform.python_version()

Επιστρέφει την έκδοση της Python ως συμβολοσειρά'major.minor.patchlevel'.

Σημειώστε ότι σε αντίθεση με τοsys.version της Python, η επιστρεφόμενη τιμή θα περιλαμβάνει πάντα το επίπεδο διόρθωσης (το οποίο προεπιλεγμένα είναι 0).

platform.python_version_tuple()

Επιστρέφει την έκδοση της Python ως πλειάδα(major,minor,patchlevel) από συμβολοσειρές.

Σημειώστε ότι, σε αντίθεση με τηνsys.version της Python, η επιστρεφόμενη τιμή θα περιλαμβάνει πάντα το επίπεδο ενημέρωσης (με προεπιλογή το'0').

platform.release()

Επιστρέφει την έκδοση του συστήματος, π.χ.'2.2.0' ή'NT'. Επιστρέφεται μια κενή συμβολοσειρά αν η τιμή δεν μπορεί να καθοριστεί.

platform.system()

Επιστρέφει το όνομα του συστήματος/λειτουργικού, όπως'Linux','Darwin','Java','Windows'. Επιστρέφεται μια κενή συμβολοσειρά αν η τιμή δεν μπορεί να καθοριστεί.

platform.system_alias(system,release,version)

Επιστρέφει μια πλειάδα(system,release,version) με ονόματα εμπορικής χρήσης που χρησιμοποιούνται για ορισμένα συστήματα. Επίσης, αναδιατάσσει ορισμένες πληροφορίες σε περιπτώσεις που διαφορετικά θα προκαλούσαν σύγχυση.

platform.version()

Επιστρέφει την έκδοση κυκλοφορίας του συστήματος, π.χ.'#3ondegas'. Επιστρέφεται μια κενή συμβολοσειρά εάν η τιμή δεν μπορεί να προσδιοριστεί.

platform.uname()

Αρκετά φορητή διεπαφή uname. Επιστρέφει έναnamedtuple() που περιέχει έξι ιδιότητες:system,node,release,version,machine καιprocessor.

Τοprocessor επιλύεται αργά, κατόπιν αιτήματος.

Σημείωση: τα ονόματα των πρώτων δύο ιδιοτήτων διαφέρουν από αυτά που παρουσιάζονται από την συνάρτησηos.uname(), όπου ονομάζονταιsysname καιnodename.

Οι τιμές που δεν μπορούν να προσδιοριστούν ορίζονται σε''.

Άλλαξε στην έκδοση 3.3:Το αποτέλεσμα άλλαξε από μια πλειάδα σεnamedtuple().

Άλλαξε στην έκδοση 3.9:Τοprocessor αναλύεται καθυστερημένα αντί άμεσα.

Πλατφόρμα Java

platform.java_ver(release='',vendor='',vminfo=('','',''),osinfo=('','',''))

Διεπαφή έκδοσης για Jython.

Επιστρέφει μια πλειάδα(release,vendor,vminfo,osinfo) όπου τοvminfo είναι μια πλειάδα(vm_name,vm_release,vm_vendor) και τοosinfo είναι μια πλειάδα(os_name,os_version,os_arch). Τιμές που δεν μπορούν να προσδιοριστούν ορίζονται στα προεπιλεγμένα που δίνονται ως παράμετροι (τα οποία προεπιλεγμένα είναι όλα'').

Πλατφόρμα Windows

platform.win32_ver(release='',version='',csd='',ptype='')

Λαμβάνει επιπλέον πληροφορίες έκδοσης από το Μητρώο των Windows και επιστρέφει μια πλειάδα(release,version,csd,ptype) που αναφέρεται στην έκδοση του λειτουργικού συστήματος, τον αριθμό έκδοσης, το επίπεδο CSD (service pack) και τον τύπο λειτουργικού συστήματος (πολυεπεξεργαστικό/μονοεπεξεργαστικό). Τιμές που δεν μπορούν να προσδιοριστούν ορίζονται στα προεπιλεγμένα που δίνονται ως παράμετροι (όλα προεπιλέγονται σε κενές συμβολοσειρές).

Ως υπόδειξη: τοptype είναι'UniprocessorFree' σε μηχανές NT με έναν επεξεργαστή και'MultiprocessorFree' σε μηχανές με πολλαπλούς επεξεργαστές. Ο όρος“Free” αναφέρεται σε έκδοση του λειτουργικού συστήματος χωρίς κώδικα αποσφαλμάτωσης. Θα μπορούσε επίσης να αναφέρει“Checked” που σημαίνει ότι η έκδοση του λειτουργικού συστήματος χρησιμοποιεί κώδικα αποσφαλμάτωσης, δηλαδή κώδικα που ελέγχει ορίσματα, εύρη κ.λπ.

platform.win32_edition()

Επιστρέφει μια συμβολοσειρά που αναπαριστά την τρέχουσα έκδοση των Windows ήNone αν δεν μπορεί να καθοριστεί η τιμή. Πιθανές τιμές περιλαμβάνουν, αλλά δεν περιορίζονται σε'Enterprise','IoTUAP','ServerStandard' και'nanoserver'.

Added in version 3.8.

platform.win32_is_iot()

ΕπιστρέφειTrue αν η έκδοση των Windows που επιστρέφεται από τηνwin32_edition() αναγνωρίζεται ως έκδοση IoT.

Added in version 3.8.

Πλατφόρμα macOS

platform.mac_ver(release='',versioninfo=('','',''),machine='')

Λαμβάνει πληροφορίες έκδοσης macOS και τις επιστρέφει ως πλειάδα(release,versioninfo,machine) όπου τοversioninfo είναι μια πλειάδα(version,dev_stage,non_release_version).

Οι τιμές που δεν μπορούν να προσδιοριστούν ορίζονται ως''. Όλα τα στοιχεία της πλειάδας είναι συμβολοσειρές.

Πλατφόρμες Unix

platform.libc_ver(executable=sys.executable,lib='',version='',chunksize=16384)

Προσπαθεί να προσδιορίσει την έκδοση της libc με την οποία είναι συνδεδεμένο το εκτελέσιμο αρχείο (προεπιλογή είναι ο διερμηνέας της Python). Επιστρέφει μια πλειάδα συμβολοσειρών(lib,version), η οποία ορίζεται στις δοθείσες παραμέτρους σε περίπτωση αποτυχίας της αναζήτησης.

Σημειώστε ότι αυτή η συνάρτηση έχει λεπτομερή γνώση του τρόπου με τον οποίο οι διάφορες εκδόσεις της libc προσθέτουν σύμβολα στο εκτελέσιμο και πιθανώς μπορεί να χρησιμοποιηθεί μόνο για εκτελέσιμα που έχουν μεταγλωττιστεί με τοgcc.

Το αρχείο διαβάζεται και σαρώνονται τμήματά του μεγέθουςchunksize bytes.

Πλατφόρμες Linux

platform.freedesktop_os_release()

Λαμβάνει την ταυτότητα του λειτουργικού συστήματος από το αρχείοos-release και την επιστρέφει ως λεξικό. Το αρχείοos-release είναι έναπρότυπο του freedesktop.org και είναι διαθέσιμο στις περισσότερες διανομές Linux. Μια αξιοσημείωτη εξαίρεση είναι το Android και οι διανομές που βασίζονται σε Android.

Κάνει raise εξαίρεσηOSError ή την υποκλάση όταν δεν είναι δυνατή η ανάγνωση ούτε του/etc/os-release ούτε του/usr/lib/os-release.

Σε περίπτωση επιτυχίας, η συνάρτηση επιστρέφει ένα λεξικό όπου τα κλειδιά και οι τιμές είναι συμβολοσειρές. Οι τιμές έχουν τους ειδικούς χαρακτήρες του, όπως" και$, χωρίς εισαγωγικά. Τα πεδίαNAME,ID καιPRETTY_NAME ορίζονται πάντα σύμφωνα με το πρότυπο. Όλα τα άλλα πεδία είναι προαιρετικά. Οι προμηθευτές μπορεί να περιλαμβάνουν πρόσθετα πεδία.

Σημειώστε ότι πεδία όπως ταNAME,VERSION καιVARIANT είναι συμβολοσειρές κατάλληλες για παρουσίαση στους χρήστες. Τα προγράμματα θα πρέπει να χρησιμοποιούν πεδία όπως ταID,ID_LIKE,VERSION_ID ήVARIANT_ID για την αναγνώριση διανομών Linux.

Παράδειγμα:

defget_like_distro():info=platform.freedesktop_os_release()ids=[info["ID"]]if"ID_LIKE"ininfo:# ids are space separated and ordered by precedenceids.extend(info["ID_LIKE"].split())returnids

Added in version 3.10.