4. Χρησιμοποιώντας Python στα Windows¶
Αυτό το έγγραφο στοχεύει να δώσει μια επισκόπηση της συμπεριφοράς των Windows που πρέπει να γνωρίζετε, όταν χρησιμοποιείτε την Python στα Microsoft Windows.
Σε αντίθεση με τα περισσότερα συστήματα και υπηρεσίες Unix, τα Windows δεν περιλαμβάνουν ενσωματωμένη εγκατάσταση Python που υποστηρίζεται από το σύστημα. Για να είναι διαθέσιμη η Python, η ομάδα της CPython έχει μεταγλωττίσει προγράμματα εγκατάστασης των Windows με κάθε έκδοση για πολλά χρόνια. Αυτά τα προγράμματα εγκατάστασης προορίζονται κυρίως για την προσθήκη μιας εγκατάστασης της Python ανά χρήστη, με τον βασικό διερμηνέα και τη βιβλιοθήκη να χρησιμοποιούνται από έναν μόνο χρήστη. Το πρόγραμμα εγκατάστασης είναι, επίσης σε θέση να εγκαταστήσει για όλους τους χρήστες ενός μεμονωμένου μηχανήματος και ένα ξεχωριστό αρχείο ZIP που είναι διαθέσιμο για τοπικές διανομές εφαρμογής.
Όπως ορίζεται στο PEP 11, μια έκδοση Python υποστηρίζει μόνο μια πλατφόρμα Windows, ενώ η Microsoft θεωρεί την πλατφόρμα υπό εκτεταμένη υποστήριξη. Αυτό σημαίνει ότι η Python 3.13 υποστηρίζει Windows 8.1 και νεότερες εκδόσεις. Εάν χρειάζεστε υποστήριξη Windows 7, εγκαταστήστε την Python 3.8.
Υπάρχει ένας αριθμός διαφορετικών προγραμμάτων εγκατάστασης διαθέσιμα για Windows, το καθένα με ορισμένα πλεονεκτήματα και μειονεκτήματα.
Το Το πλήρες πρόγραμμα εγκατάστασης περιέχει όλα τα στοιχεία και είναι η καλύτερη επιλογή για προγραμματιστές που χρησιμοποιούν Python για κάθε είδους έργο.
Το Το πακέτο Microsoft Store είναι μια απλή εγκατάσταση της Python που είναι κατάλληλη για εκτέλεση scripts και πακέτων, και χρήση IDLE ή άλλων περιβαλλόντων ανάπτυξης. Απαιτεί Windows 10 και νεότερη έκδοση, αλλά μπορεί να εγκατασταθεί με ασφάλεια χωρίς να καταστρέψει άλλα προγράμματα. Παρέχει επίσης πολλές βολικές εντολές για την εκκίνηση της Python και των εργαλείων της.
Το Τα πακέτα nuget.org είναι ελαφριές εγκαταστάσεις που προορίζονται για συστήματα συνεχούς ενοποίησης. Μπορεί να χρησιμοποιηθεί για τη δημιουργία πακέτων Python ή την εκτέλεση scripts, αλλά δεν μπορεί να ενημερωθεί και δεν διαθέτει εργαλεία διεπαφής χρήστη.
Το Το ενσωματωμένο πακέτο είναι ένα ελάχιστο πακέτο Python κατάλληλο για ενσωμάτωση σε μεγαλύτερη εφαρμογή.
4.1. Το πλήρες πρόγραμμα εγκατάστασης¶
4.1.1. Βήματα Εγκατάστασης¶
Τέσσερα προγράμματα εγκατάστασης Python 3.13 είναι διαθέσιμα για λήψη - δύο το καθένα για τις εκδόσεις 32-bit και 64-bit του διερμηνέα. Το πρόγραμμα εγκατάστασης web είναι μια αρχική λήψη και θα πραγματοποιήσει αυτόματα λήψη των απαιτούμενων στοιχείων, όπως απαιτείται. Το πρόγραμμα εγκατάστασης εκτός σύνδεσης περιλαμβάνει τα στοιχεία που είναι απαραίτητα για μια προεπιλεγμένη εγκατάσταση και απαιτεί μόνο σύνδεση στο διαδίκτυο για προαιρετικές λειτουργίες. Δείτε το Εγκατάσταση χωρίς λήψη για άλλους τρόπους αποφυγής λήψης κατά την εγκατάσταση.
Μετά την εκκίνηση του προγράμματος εγκατάστασης, μπορεί να επιλέγει μία από τις δύο επιλογές:
Εάν επιλέξετε «Install Now»:
Δεν θα χρειάζεται να είστε διαχειριστής (εκτός εάν απαιτείται ενημέρωση συστήματος για τη Βιβλιοθήκη C Runtime ή εγκαταστήσετε το Το πρόγραμμα εκκίνησης Python για Windows για όλους τους χρήστες)
Η Python θα εγκατασταθεί στον κατάλογο του χρήστη σας
Το Το πρόγραμμα εκκίνησης Python για Windows θα εγκατασταθεί σύμφωνα με την επιλογή στο κάτω μέρος της πρώτης σελίδας
Θα εγκατασταθεί η τυπική βιβλιοθήκη, η δοκιμαστική σουίτα, ο εκκινητής και το pip
Εάν επιλεγεί, ο κατάλογος εγκατάστασης θα προστεθεί στο
PATHσαςΟι συντομεύσεις θα είναι ορατές μόνο για τον τρέχοντα χρήστη
Επιλέγοντας «Customize installation» θα σας επιτρέψει να επιλέξετε τις λειτουργίες προς εγκατάσταση, τη θέση εγκατάστασης και άλλες επιλογές ή ενέργειες μετά την εγκατάσταση. Για να εγκαταστήσετε σύμβολα εντοπισμού σφαλμάτων ή δυαδικά αρχεία, θα χρειαστεί να χρησιμοποιήσετε αυτήν την επιλογή.
Για να εκτελέσετε μια εγκατάσταση για όλους τους χρήστες, θα πρέπει να επιλέξετε «Customize installation». Σε αυτήν την περίπτωση:
Ενδέχεται να σας ζητηθεί να παρέχετε διαπιστευτήρια διαχείρισης ή έγκριση
Η Python θα εγκατασταθεί στον κατάλογο Program Files
Το Το πρόγραμμα εκκίνησης Python για Windows θα εγκατασταθεί στον κατάλογο των Windows
Προαιρετικά χαρακτηριστικά μπορούν να επιλεγούν κατά την εγκατάσταση
Η τυπική βιβλιοθήκη μπορεί να προ-μεταγλωττιστεί σε bytecode
Εάν επιλεγεί, ο κατάλογος εγκατάστασης θα προστεθεί στο σύστημα
PATHΟι συντομεύσεις είναι διαθέσιμες για όλους τους χρήστες
4.1.2. Κατάργηση του περιορισμού MAX_PATH¶
Τα Windows έχουν ιστορικά περιορισμένα μήκη διαδρομής στους 260 χαρακτήρες. Αυτό σήμαινε ότι διαδρομές μεγαλύτερες από αυτό δεν θα επιλύονταν και θα προέκυπταν σφάλματα.
Στις πιο πρόσφατες εκδόσεις των Windows, αυτός ο περιορισμός μπορεί να επεκταθεί σε περίπου 32.000 χαρακτήρες. Ο διαχειριστής σας θα πρέπει να ενεργοποιήσει την πολιτική ομάδας «Enable Win32 long paths», ή να ορίσει LongPathsEnabled σε 1 το κλειδί μητρώου HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem.
Αυτό επιτρέπει στη συνάρτηση open(), στο module os και στις περισσότερες άλλες λειτουργίες διαδρομής να αποδέχονται και να επιστρέφουν διαδρομές μεγαλύτερες από 260 χαρακτήρες.
Μετά την αλλαγή της παραπάνω επιλογής, δεν απαιτείται περαιτέρω διαμόρφωση.
Άλλαξε στην έκδοση 3.6: Η υποστήριξη για μεγάλες διαδρομές ήταν ενεργοποιημένη στην Python.
4.1.3. Εγκατάσταση χωρίς περιβάλλον διεπαφής χρήστη¶
Όλες οι διαθέσιμες επιλογές στη διεπαφή χρήστη του προγράμματος εγκατάστασης μπορούν επίσης να καθοριστούν από τη γραμμή εντολών, επιτρέποντας στους εγκαταστάτες με script να αναπαράγουν μια εγκατάσταση σε πολλά μηχανήματα χωρίς αλληλεπίδραση με τον χρήστη. Αυτές οι επιλογές μπορούν επίσης να οριστούν χωρίς να καταργηθεί η διεπαφή χρήστη προκειμένου να αλλάξουν ορισμένες από τις προεπιλογές.
Οι ακόλουθες επιλογές (που βρίσκονται εκτελώντας το πρόγραμμα εγκατάστασης με /?) μπορούν να περάσουν στο πρόγραμμα εγκατάστασης:
Όνομα |
Περιγραφή |
|---|---|
/passive |
για εμφάνιση προόδου χωρίς να απαιτείται αλληλεπίδραση με τον χρήστη |
/quiet |
για εγκατάσταση/απεγκατάσταση χωρίς εμφάνιση διεπαφής χρήστη |
/simple |
για να αποτρέψετε την προσαρμογή του χρήστη |
/uninstall |
για να αφαιρέσετε την Python (χωρίς επιβεβαίωση) |
/layout [κατάλογος] |
για προ-λήψη όλων των στοιχείων |
/log [όνομα αρχείου] |
για να καθορίσετε τη θέση των αρχείων καταγραφής |
Όλες οι άλλες επιλογές μεταβιβάζονται ως name=value, όπου η τιμή είναι συνήθως 0 για να απενεργοποιήσετε ένα χαρακτηριστικό, 1 για να ενεργοποιήσετε ένα χαρακτηριστικό ή μια διαδρομή. Η πλήρης λίστα των διαθέσιμων επιλογών φαίνεται παρακάτω.
Όνομα |
Περιγραφή |
Προεπιλογή |
|---|---|---|
InstallAllUsers |
Εκτέλεση εγκατάστασης σε όλο το σύστημα. |
0 |
TargetDir |
Ο κατάλογος εγκατάστασης |
Επιλέχθηκε με βάση το InstallAllUsers |
DefaultAllUsersTargetDir |
Ο προεπιλεγμένος κατάλογος εγκατάστασης για τις εγκαταστάσεις όλων των χρηστών |
|
DefaultJustForMeTargetDir |
Ο προεπιλεγμένος κατάλογος εγκατάστασης για εξατομικευμένες εγκαταστάσεις |
|
DefaultCustomTargetDir |
Ο προεπιλεγμένος κατάλογος προσαρμοσμένης εγκατάστασης που εμφανίζεται στο UI |
(empty) |
AssociateFiles |
Δημιουργήστε συσχετίσεις αρχείων εάν είναι επίσης εγκατεστημένο το πρόγραμμα εκκίνησης. |
1 |
CompileAll |
Μεταγλώττιση όλων των αρχείων |
0 |
PrependPath |
Προετοιμάστε τους καταλόγους εγκατάστασης και Scripts στο |
0 |
AppendPath |
Προσθήκη καταλόγων εγκατάστασης και Scripts σε |
0 |
Συντομεύσεις |
Δημιουργήστε συντομεύσεις για τον διερμηνέα, την τεκμηρίωση και το IDLE εάν είναι εγκατεστημένα. |
1 |
Include_doc |
Εγκαταστήστε το εγχειρίδιο της Python |
1 |
Include_debug |
Εγκαταστήστε δυαδικά αρχεία εντοπισμού σφαλμάτων |
0 |
Include_dev |
Εγκατάσταση κεφαλίδων και βιβλιοθηκών προγραμματιστή. Η παράλειψη αυτού μπορεί να οδηγήσει σε μη χρησιμοποιήσιμη εγκατάσταση. |
1 |
Include_exe |
Εγκατάσταση |
1 |
Include_launcher |
Εγκαταστήστε το Το πρόγραμμα εκκίνησης Python για Windows. |
1 |
InstallLauncherAllUsers |
Εγκαθιστά το πρόγραμμα εκκίνησης για όλους του χρήστες. Επίσης, απαιτείται η ρύθμιση |
1 |
Include_lib |
Εγκαταστήστε τυπικά module βιβλιοθήκης και επέκτασης. Η παράλειψη αυτού μπορεί να οδηγήσει σε μη χρησιμοποιήσιμη εγκατάσταση. |
1 |
Include_pip |
Εγκαταστήστε το πακέτο pip και setuptools |
1 |
Include_symbols |
Εγκατάσταση συμβόλων εντοπισμού σφαλμάτων ( |
0 |
Include_tcltk |
Εγκατάσταση υποστήριξης Tcl/Tk και IDLE |
1 |
Include_test |
Εγκαταστήστε την τυπική σουίτα δοκιμών βιβλιοθήκης |
1 |
Include_tools |
Εγκαταστήστε βοηθητικά scripts |
1 |
LauncherOnly |
Εγκαθιστά μόνο το πρόγραμμα εκκίνησης. Αυτό θα παρακάμψει τις περισσότερες άλλες επιλογές. |
0 |
SimpleInstall |
Απενεργοποιήστε τις περισσότερες διεπαφές εγκατάστασης |
0 |
SimpleInstallDescription |
Ένα προσαρμοσμένο μήνυμα που θα εμφανίζεται όταν χρησιμοποιείται το απλοποιημένο περιβάλλον διεπαφής χρήστη. |
(empty) |
Για παράδειγμα, για να εγκαταστήσετε αθόρυβα μια προεπιλεγμένη εγκατάσταση Python σε όλο το σύστημα, θα μπορούσατε να χρησιμοποιήσετε την ακόλουθη εντολή (από μια ανυψωμένη γραμμή εντολών):
python-3.9.0.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0
Για να επιτρέψετε στους χρήστες να εγκαταστήσουν εύκολα ένα προσωπικό αντίγραφο της Python χωρίς τη δοκιμαστική σουίτα, θα μπορούσατε να παρέχετε μια συντόμευση με την ακόλουθη εντολή. Αυτή θα εμφανίσει μια απλοποιημένη αρχική σελίδα και θα απαγορεύσει την προσαρμογή:
python-3.9.0.exe InstallAllUsers=0 Include_launcher=0 Include_test=0
SimpleInstall=1 SimpleInstallDescription="Just for me, no test suite."
(Λάβετε υπόψη ότι η παράλειψη της εφαρμογής εκκίνησης παραλείπει επίσης συσχετίσεις αρχείων και συνίσταται μόνο για εγκαταστάσεις ανά χρήστη όταν υπάρχει επίσης εγκατάσταση σε όλο το σύστημα που περιλάμβανε τη λειτουργία εκκίνησης.)
Οι επιλογές που αναφέρονται παραπάνω μπορούν επίσης να παρέχονται σε ένα αρχείο με το όνομα unattend.xml δίπλα στο εκτελέσιμο αρχείο. Αυτό το αρχείο καθορίζει μια λίστα επιλογών και τιμών. Όταν μια τιμή παρέχεται ως χαρακτηριστικό, θα μετατραπεί σε αριθμό εάν είναι δυνατόν. Οι τιμές που παρέχονται ως κείμενο στοιχείου παραμένουν πάντα ως συμβολοσειρές. Αυτό το αρχείο παραδείγματος ορίζει τις ίδιες επιλογές με το προηγούμενο παράδειγμα:
<Options>
<Option Name="InstallAllUsers" Value="no" />
<Option Name="Include_launcher" Value="0" />
<Option Name="Include_test" Value="no" />
<Option Name="SimpleInstall" Value="yes" />
<Option Name="SimpleInstallDescription">Just for me, no test suite</Option>
</Options>
4.1.4. Εγκατάσταση χωρίς λήψη¶
Καθώς ορισμένες δυνατότητες της Python δεν περιλαμβάνονται στην αρχική λήψη του προγράμματος εγκατάστασης, η επιλογή αυτών των δυνατοτήτων ενδέχεται να απαιτεί σύνδεση στο διαδίκτυο. Για να αποφευχθεί αυτή η ανάγκη, όλα τα πιθανά στοιχεία μπορούν να ληφθούν κατ” απαίτηση για να δημιουργηθεί μια πλήρης διάταξη που δεν θα απαιτεί πλέον μια σύνδεση στο Διαδίκτυο, ανεξάρτητα από τις επιλεγμένες δυνατότητες. Λάβετε υπόψη ότι αυτή η λήψη μπορεί να είναι μεγαλύτερη από την απαιτούμενη, αλλά όπου πρόκειται να πραγματοποιηθεί μεγάλος αριθμός εγκαταστάσεων, είναι πολύ χρήσιμο να έχετε ένα αντίγραφο προσωρινής αποθήκευσης.
Εκτελέστε την ακόλουθη εντολή από τη Γραμμή Εντολών για λήψη όλων των πιθανών απαιτούμενων αρχείων. Θυμηθείτε να αντικαταστήσετε το python-3.9.0.exe για το πραγματικό όνομα του προγράμματος εγκατάστασης και να δημιουργήσετε διατάξεις στους δικούς τους καταλόγους για να αποφύγετε συγκρούσεις μεταξύ αρχείων με το ίδιο όνομα.
python-3.9.0.exe /layout [optional target directory]
Μπορείτε επίσης να καθορίσετε την επιλογή /quiet για απόκρυψη της εμφάνισης προόδου.
4.1.5. Τροποποίηση εγκατάστασης¶
Μόλις εγκατασταθεί η Python, μπορείτε να προσθέσετε ή να αφαιρέσετε λειτουργίες μέσω του εργαλείου Προγράμματα και Δυνατότητες που είναι μέρος των Windows. Επιλέξτε την καταχώρηση Python και επιλέξτε «Κατάργηση εγκατάστασης/Αλλαγή» για να ανοίξετε το πρόγραμμα εγκατάστασης σε λειτουργία συντήρησης.
Η «Αλλαγή» σάς επιτρέπει να προσθέτετε ή να αφαιρείτε λειτουργίες τροποποιώντας τα πλαίσια ελέγχου - τα αμετάβλητα πλαίσια ελέγχου δεν θα εγκαταστήσουν ή θα αφαιρέσουν τίποτα. Ορισμένες επιλογές δεν μπορούν να αλλάξουν σε αυτήν τη λειτουργία, όπως ο κατάλογος εγκατάστασης· για να τις τροποποιήσετε, θα χρειαστεί αν αφαιρέσετε και, στη συνέχεια να επανεγκαταστήσετε ξανά την Python.
Η «Επιδιόρθωση» θα επαληθεύσει όλα τα αρχεία που πρέπει να εγκατασταθούν χρησιμοποιώντας τις τρέχουσες ρυθμίσεις και θα αντικαταστήσει όσα έχουν αφαιρεθεί ή τροποποιηθεί.
Η «Κατάργηση εγκατάστασης» θα καταργήσει πλήρως την Python, με εξαίρεση το Το πρόγραμμα εκκίνησης Python για Windows, το οποίο έχει τη δική του καταχώριση στο Προγράμματα και Δυνατότητες.
4.1.6. Εγκατάσταση Δυαδικών Αρχείων Ελεύθερου Νήματος¶
Added in version 3.13: (Πειραματικό)
Σημείωση
Όλα όσα περιγράφονται σε αυτήν την ενότητα θεωρούνται πειραματικά και θα πρέπει να αναμένεται να αλλάξουν σε μελλοντικές εκδόσεις.
Για να εγκαταστήσετε προ-κατασκευασμένα δυαδικά αρχεία με ενεργοποιημένο το ελεύθερο νήμα (βλ. PEP 703), θα πρέπει να επιλέξετε «Προσαρμοσμένη εγκατάσταση». Η δεύτερη σελίδα επιλογών περιλαμβάνει το πλαίσιο ελέγχου «Λήψη δυαδικών αρχείων ελεύθερου νήματος».
Κάνοντας αυτή την επιλογή θα κατεβάσει και θα εγκαταστήσει επιπλέον δυαδικά αρχεία στην ίδια τοποθεσία με την κύρια εγκατάσταση της Python. Το κύριο εκτελέσιμο αρχείο ονομάζεται python3.13t.exe, και άλλα δυαδικά αρχεία είτε λαμβάνουν ένα επίθημα t είτε ένα πλήρες επίθημα ABI. Τα αρχεία πηγαίου κώδικα της Python και οι ενσωματωμένες εξαρτήσεις τρίτων μοιράζονται με την κύρια εγκατάσταση.
Η έκδοση ελεύθερου νήματος καταχωρείται ως κανονική εγκατάσταση Python με την ετικέτα 3.13t (με επίθημα -32 ή -arm64 ως κανονικό για αυτές τις πλατφόρμες). Αυτό επιτρέπει στα εργαλεία να την ανακαλύψουν, και για το Το πρόγραμμα εκκίνησης Python για Windows να υποστηρίξει το py.exe -3.13t. Σημειώστε ότι το πρόγραμμα εκκίνησης θα ερμηνεύσει το py.exe -3 (ή ένα shebang python3) ως «την πιο πρόσφατη εγκατάσταση 3.x», που θα προτιμήσει τα δυαδικά αρχεία ελεύθερου νήματος έναντι των κανονικών, ενώ το py.exe -3.13 δεν θα το κάνει. Εάν χρησιμοποιείτε το σύντομο στυλ επιλογής, μπορεί να προτιμάτε να μην εγκαταστήσετε τα δυαδικά αρχεία ελεύθερου νήματος αυτή τη στιγμή.
Για να καθορίσετε την επιλογή εγκατάστασης στη γραμμή εντολών, χρησιμοποιήστε Include_freethreaded=1. Δείτε Εγκατάσταση χωρίς λήψη για οδηγίες σχετικά με την προληπτική λήψη των επιπλέον δυαδικών αρχείων για εγκατάσταση εκτός σύνδεσης. Οι επιλογές για την συμπερίληψη συμβόλων και δυαδικών αρχείων εντοπισμού σφαλμάτων ισχύουν επίσης για τις κατασκευές ελεύθερου νήματος.
Τα δυαδικά αρχεία ελεύθερου νήματος είναι επίσης διαθέσιμα στο nuget.org.
4.2. Το πακέτο Microsoft Store¶
Added in version 3.7.2.
Το πακέτο Microsoft Store είναι ένας εύκολα εγκαταστημένος διερμηνέας Python που προορίζεται κυρίως για διαδραστική χρήση για παράδειγμα, από μαθητές.
Για να εγκαταστήσετε το πακέτο, βεβαιωθείτε ότι έχετε τις πιο πρόσφατες ενημερώσεις των Windows 10 και πραγματοποιήστε αναζήτηση στην εφαρμογή Microsoft Store για «Python 3.13». Βεβαιωθείτε ότι η εφαρμογή που επιλέγετε έχει δημοσιευτεί από το Python Software Foundation, και εγκαταστήστε την.
Προειδοποίηση
Η Python θα είναι πάντα διαθέσιμη δωρεάν στο Microsoft Store. Εάν σας ζητηθεί να πληρώσετε για αυτό, δεν έχετε επιλέξει το σωστό πακέτο.
Μετά την εγκατάσταση, η Python μπορεί να εκκινηθεί βρίσκοντας την στην Έναρξη. Εναλλακτικά, θα είναι διαθέσιμη από οποιαδήποτε περίοδο λειτουργίας της Γραμμής Εντολών ή PowerShell, πληκτρολογώντας python. Επιπλέον, το pip και το IDLE μπορούν να χρησιμοποιηθούν πληκτρολογώντας pip ή idle. Το IDLE μπορεί επίσης να βρεθεί στην Έναρξη.
Και οι τρεις εντολές είναι επίσης διαθέσιμες με επιθήματα αριθμού έκδοσης, για παράδειγμα, ως python3.exe και python3.x.exe καθώς και το python.exe (όπου 3.x είναι η συγκεκριμένη έκδοση που θέλετε να εκκινήσετε, όπως 3.13). Ανοίξτε «Διαχείριση Ψευδωνύμων Εκτέλεσης Εφαρμογών» μέσω της Έναρξης για να επιλέξετε ποια έκδοση της Python σχετίζεται με κάθε εντολή. Συνίσταται να βεβαιωθείτε ότι τα pip και idle είναι είναι συμβατά με οποιαδήποτε έκδοση της python έχει επιλεγεί.
Τα εικονικά περιβάλλοντα μπορούν να δημιουργηθούν με το python -m venv και να ενεργοποιηθούν και να χρησιμοποιηθούν κανονικά.
Εάν έχετε εγκαταστήσει μια άλλη έκδοση της Python και την προσθέσατε στη μεταβλητή PATH σας, θα είναι διαθέσιμη ως python.exe και όχι ως αυτή από το Microsoft Store. Για πρόσβαση στη νέα εγκατάσταση, χρησιμοποιήστε το python3.exe ή python3.x.exe.
Η εφαρμογή εκκίνησης py.exe θα εντοπίσει αυτήν την εγκατάσταση Python, αλλά θα προτιμήσει εγκαταστάσεις από το παραδοσιακό πρόγραμμα εγκατάστασης.
Για να καταργήσετε την Python, ανοίξτε τις Ρυθμίσεις και χρησιμοποιήστε τις Εφαρμογές και Δυνατότητες, ή βρείτε την Python στην Έναρξη και κάντε δεξί κλικ για να επιλέξετε Κατάργηση εγκατάστασης. Η απομάκρυνση θα αφαιρέσει όλα τα πακέτα που εγκαταστήσατε απευθείας σε αυτήν την εγκατάσταση Python, αλλά δεν θα αφαιρέσει κανένα εικονικό περιβάλλον
4.2.1. Γνωστά θέματα¶
4.2.1.1. Ανακατεύθυνση τοπικών δεδομένων, μητρώου, και προσωρινών διαδρομών¶
Λόγω περιορισμών στις εφαρμογές του Microsoft Store, τα Python scripts ενδέχεται να μην έχουν πλήρη πρόσβαση εγγραφής σε κοινόχρηστες τοποθεσίες όπως TEMP και το μητρώο. Αντίθετα, θα γράψει σε ένα ιδιωτικό αντίγραφο. Εάν τα scripts σας πρέπει να τροποποιήσουν τις κοινόχρηστες τοποθεσίες, θα χρειαστεί να εγκαταστήσετε το πλήρες πρόγραμμα εγκατάστασης.
Κατά το χρόνο εκτέλεσης, η Python θα χρησιμοποιεί ένα ιδιωτικό αντίγραφο γνωστών φακέλων των Windows και του μητρώου. Για παράδειγμα, εάν η μεταβλητή περιβάλλοντος %APPDATA% είναι c:\Users\<user>\AppData\, τότε κατά την εγγραφή στο C:\Users\<user>\AppData\Local θα γράψει στο C:\Users\<user>\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\Local\.
Κατά την ανάγνωση αρχείων, τα Windows θα επιστρέψουν το αρχείο από τον ιδιωτικό φάκελο ή αν δεν υπάρχει, τον πραγματικό κατάλογο των Windows. Για παράδειγμα, η ανάγνωση του C:\Windows\System32 επιστρέφει τα περιεχόμενα του C:\Windows\System32 συν τα περιεχόμενα του C:\Program Files\WindowsApps\package_name\VFS\SystemX86.
Μπορείτε να βρείτε την πραγματική διαδρομή οποιουδήποτε υπάρχοντος αρχείου χρησιμοποιώντας os.path.realpath():
>>> import os
>>> test_file = 'C:\\Users\\example\\AppData\\Local\\test.txt'
>>> os.path.realpath(test_file)
'C:\\Users\\example\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\\LocalCache\\Local\\test.txt'
Κατά την εγγραφή στο μητρώο των Windows, υπάρχουν οι ακόλουθες συμπεριφορές:
Η ανάγνωση από το
HKLM\\Softwareεπιτρέπεται και τα αποτελέσματα συγχωνεύονται με το αρχείοregistry.datστο πακέτο.Η εγγραφή στο
HKLM\\Softwareδεν επιτρέπεται εάν υπάρχει το αντίστοιχο κλειδί/τιμή, π.χ. τροποποίηση υπαρχόντων κλειδιών.Η εγγραφή στο
HKLM\\Softwareεπιτρέπει εφόσον δεν υπάρχει αντίστοιχο κλειδί/τιμή στο πακέτο και ο χρήστης έχει τα σωστά δικαιώματα πρόσβασης.
Για περισσότερες λεπτομέρειες σχετικά με την τεχνική βάση για αυτούς του περιορισμούς, συμβουλευτείτε την τεκμηρίωση της Microsoft σχετικά με τις συσκευασμένες εφαρμογές πλήρους αξιοπιστίας, που είναι επί του παρόντος διαθέσιμη στη διεύθυνση docs.microsoft.com/en-us/windows/msix/desktop/desktop-to-uwp-behind-the-scenes
4.3. Τα πακέτα nuget.org¶
Added in version 3.5.2.
Το πακέτο nuget.org είναι ένα περιβάλλον Python μειωμένου μεγέθους που προορίζεται για χρήση σε συνεχή ενοποίηση και δημιουργία συστημάτων που δεν έχουν εγκατάσταση Python. Ενώ το nuget είναι «ο διαχειριστής πακέτων για .NET», λειτουργεί επίσης τέλεια για πακέτα που περιέχουν εργαλεία χρόνου κατασκευής.
Επισκεφτείτε το nuget.org για τις πιο ενημερωμένες πληροφορίες σχετικά με τη χρήση του nuget. Αυτό που ακολουθεί είναι μια περίληψη που είναι επαρκής για προγραμματιστές Python.
Το εργαλείο γραμμής εντολών nuget.exe μπορεί να ληφθεί απευθείας από το https://aka.ms/nugetclidl, για παράδειγμα, χρησιμοποιώντας curl ή PowerShell. Με το εργαλείο, η πιο πρόσφατη έκδοση της Python για μηχανήματα 64-bit ή 32-bit εγκαθίστανται χρησιμοποιώντας:
nuget.exe install python -ExcludeVersion -OutputDirectory .
nuget.exe install pythonx86 -ExcludeVersion -OutputDirectory .
Για να επιλέξετε μια συγκεκριμένη έκδοση, προσθέστε ένα -Version 3.x.y. Ο κατάλογος εξόδου μπορεί να αλλάξει από ., και το πακέτο να εγκατασταθεί σε έναν υποκατάλογο. Από προεπιλογή, ο υποκατάλογος ονομάζεται όπως και το πακέτο, και χωρίς την επιλογή -ExcludeVersion, αυτό το όνομα θα περιλαμβάνει τη συγκεκριμένη έκδοση που έχει εγκατασταθεί. Μέσα στον υποκατάλογο υπάρχει ένας κατάλογος tools που περιέχει την εγκατάσταση Python:
# Without -ExcludeVersion
> .\python.3.5.2\tools\python.exe -V
Python 3.5.2
# With -ExcludeVersion
> .\python\tools\python.exe -V
Python 3.5.2
Γενικά, τα πακέτα nuget δεν μπορούν να αναβαθμιστούν και οι νεότερες εκδόσεις θα πρέπει να εγκατασταθούν δίπλα-δίπλα και να αναφέρονται χρησιμοποιώντας την πλήρη διαδρομή. Εναλλακτικά, διαγράψτε τον κατάλογο πακέτων με μη αυτόματο τρόπο και εγκαταστήστε τον ξανά. Πολλά συστήματα CI θα το κάνουν αυτόματα εάν δεν διατηρούν αρχεία μεταξύ των εκδόσεων.
Δίπλα στον κατάλογο tools υπάρχει ένας κατάλογος build\native. Αυτός περιέχει ένα αρχείο ιδιοτήτων MSBuild python.props που μπορεί να χρησιμοποιηθεί σε ένα έργο C++ για αναφορά στην εγκατάσταση της Python. Η συμπερίληψη των ρυθμίσεων θα χρησιμοποιεί αυτόματα τις κεφαλίδες και θα εισάγει βιβλιοθήκες στο build σας.
Οι σελίδες πληροφοριών πακέτων στο nuget.org είναι www.nuget.org/packages/python για την έκδοση 64-bit, www.nuget.org/packages/pythonx86 για την έκδοση 32-bit, και www.nuget.org/packages/pythonarm64 για την έκδοση ARM64
4.3.1. Πακέτα Ελεύθερου Νήματος¶
Added in version 3.13: (Πειραματικό)
Σημείωση
Όλα όσα περιγράφονται σε αυτήν την ενότητα θεωρούνται πειραματικά και θα πρέπει να αναμένεται να αλλάξουν σε μελλοντικές εκδόσεις.
Τα πακέτα που περιέχουν δυαδικά αρχεία ελεύθερου νήματος ονομάζονται python-freethreaded για την έκδοση 64-bit, pythonx86-freethreaded για την έκδοση 32-bit, και pythonarm64-freethreaded για την έκδοση ARM64. Αυτά τα πακέτα περιέχουν τόσο τα σημεία εισόδου python3.13t.exe όσο και python.exe, τα οποία και τα δύο εκτελούν ελεύθερο νήμα.
4.4. Το ενσωματωμένο πακέτο¶
Added in version 3.5.
Η ενσωματωμένη διανομή είναι ένα αρχείο ZIP που περιέχει ένα ελάχιστο περιβάλλον Python. Προορίζεται για δράση ως μέρος μιας άλλης εφαρμογής, αντί να έχει άμεση πρόσβαση από τους τελικούς χρήστες.
Όταν εξάγεται, η ενσωματωμένη διανομή απομονώνεται (σχεδόν) πλήρως από το σύστημα του χρήστη, συμπεριλαμβανομένων μεταβλητών περιβάλλοντος, ρυθμίσεων μητρώου συστήματος και εγκατεστημένων πακέτων. Η τυπική βιβλιοθήκη περιλαμβάνεται ως προ-μεταγλωττισμένα και βελτιστοποιημένα αρχεία .pyc σε ένα ZIP και python3.dll, python37.dll, python.exe και pythonw.exe παρέχονται όλα. Το Tcl/tk (συμπεριλαμβανομένων όλων των εξαρτημένων, όπως το Idle), το pip και η τεκμηρίωση Python δεν συμπεριλαμβάνονται.
Σημείωση
Η ενσωματωμένη διανομή δεν περιλαμβάνει το Microsoft C Runtime και είναι ευθύνη του προγράμματος εγκατάστασης της εφαρμογής να το παρέχει. Ο χρόνος εκτέλεσης μπορεί να έχει ήδη εγκατασταθεί στο σύστημα ενός χρήστη προηγουμένως ή αυτόματα μέσω του Windows Update και μπορεί να εντοπιστεί βρίσκοντας το ucrtbase.dll στον κατάλογο του συστήματος.
Τα πακέτα τρίτων θα πρέπει να εγκατασταθούν από το πρόγραμμα εγκατάστασης της εφαρμογής παράλληλα με την ενσωματωμένη διανομή. Η χρήση pip για τη διαχείριση εξαρτήσεων όπως για μια κανονική εγκατάσταση Python δεν υποστηρίζεται με αυτήν τη διανομή, αν και με λίγη προσοχή μπορεί να είναι δυνατό, να συμπεριληφθεί και να χρησιμοποιηθεί το pip για αυτόματες ενημερώσεις. Γενικά, τα πακέτα τρίτων θα πρέπει να αντιμετωπίζονται ως μέρος της εφαρμογής («vendoring»), έτσι ώστε ο προγραμματιστής να μπορεί να διασφαλίσει τη συμβατότητα με νεότερες εκδόσεις προτού παρέχει ενημερώσεις στους χρήστες.
Οι δύο προτεινόμενες περιπτώσεις χρήσης για αυτήν τη διανομή περιγράφονται παρακάτω.
4.4.1. Εφαρμογή Python¶
Μια εφαρμογή γραμμένη σε Python δεν απαιτεί απαραίτητα από τους χρήστες να γνωρίζουν αυτό το γεγονός. Η ενσωματωμένη διανομή μπορεί να χρησιμοποιηθεί σε αυτήν την περίπτωση για να συμπεριλάβει μια ιδιωτική έκδοση της Python σε ένα πακέτο εγκατάστασης. Ανάλογα με το πόσο διαφανές θα πρέπει να είναι (ή αντίστροφα, πόσο επαγγελματικό θα έπρεπε να φαίνεται), υπάρχουν δύο επιλογές.
Η χρήση ενός εξειδικευμένου εκτελέσιμου ως προγράμματος εκκίνησης απαιτεί κάποια κωδικοποίηση, αλλά παρέχει την πιο διαφανής εμπειρία για τους χρήστες. Με έναν προσαρμοσμένο πρόγραμμα εκκίνησης, δεν υπάρχουν προφανείς ενδείξεις ότι το πρόγραμμα εκτελείται σε Python: τα εικονίδια μπορούν να προσαρμοστούν, οι πληροφορίες εταιρείας και έκδοσης μπορούν να καθορίζεται και οι συσχετισμοί αρχείων συμπεριφέρονται σωστά. Στις περισσότερες περιπτώσεις, ένα προσαρμοσμένο πρόγραμμα εκκίνησης θα πρέπει απλώς να μην μπορεί να καλεί το Py_Main με μια σκληρά κωδικοποιημένη γραμμή εντολών.
Η απλούστερη προσέγγιση είναι να παρέχετε ένα αρχείο δέσμης ή μια συντόμευση που δημιουργείται που καλεί απευθείας το python.exe ή το pythonw.exe με τα απαιτούμενα ορίσματα γραμμής εντολών. Σε αυτήν την περίπτωση, η εφαρμογή φαίνεται να είναι Python και όχι το πραγματικό της όνομα, και οι χρήστες μπορεί να έχουν πρόβλημα να το ξεχωρίσουν από άλλες διεργασίες Python που εκτελούνται ή συσχετίσεις αρχείων.
Με την τελευταία προσέγγιση, τα πακέτα θα πρέπει να εγκατασταθούν ως κατάλογοι μαζί με το εκτελέσιμο Python για να διασφαλιστεί ότι είναι διαθέσιμα στην διαδρομή. Με το εξειδικευμένο πρόγραμμα εκκίνησης τα πακέτα μπορούν να βρίσκονται σε άλλες τοποθεσίες, καθώς υπάρχει η ευκαιρία να καθοριστεί η διαδρομή αναζήτησης πριν από την εκκίνηση της εφαρμογής.
4.4.2. Ενσωμάτωση Python¶
Οι εφαρμογές που είναι γραμμένες σε εγγενή κώδικα απαιτούν συχνά κάποια μορφή scripting γλώσσας και η ενσωματωμένη διανομή Python μπορεί να χρησιμοποιηθεί για αυτόν τον σκοπό. Γενικά, η πλειονότητα της εφαρμογής είναι σε εγγενή κώδικα και κάποιο μέρος είτε θα καλέσει το python.exe ή θα χρησιμοποιήσει απευθείας το python3.dll. Και στις δύο περιπτώσεις, η εξαγωγή της ενσωματωμένης διανομής σε έναν υποκατάλογο της εγκατάστασης της εφαρμογής αρκεί για να παρέχει έναν διερμηνέα Python με δυνατότητα φόρτωσης.
Όπως και με τη χρήση της εφαρμογής, τα πακέτα μπορούν να εγκατασταθούν σε οποιαδήποτε τοποθεσία, καθώς υπάρχει η ευκαιρία να καθορίσουν διαδρομές αναζήτησης πριν αρχικοποιηθεί ο διερμηνέας. Διαφορετικά , δεν υπάρχουν θεμελιώδεις διαφορές μεταξύ της χρήσης της ενσωματωμένης διανομή και μιας κανονικής εγκατάστασης.
4.5. Εναλλακτικά πακέτα¶
Εκτός από την τυπική διανομή CPython, υπάρχουν τροποποιημένα πακέτα που περιλαμβάνουν πρόσθετες λειτουργίες. Ακολουθεί μια λίστα με δημοφιλείς εκδόσεις και τα βασικά χαρακτηριστικά τους:
- ActivePython
Πρόγραμμα εγκατάστασης με συμβατότητα πολλαπλών πλατφορμών, τεκμηρίωση, PyWin32
- Anaconda
Δημοφιλείς επιστημονικά modules (όπως το numpy, scipy και pandas) και ο διαχειριστής πακέτων
conda.- Enthought Deployment Manager
«Η επόμενη γενικά Διαχειριστή Περιβάλλοντος και Πακέτων Python».
Προηγουμένως, η Enthought παρείχε το Canopy, αλλά έφτασε στο τέλος της ζωής του το 2016.
- WinPython
Διανομή ειδικά για Windows με προκατασκευασμένα επιστημονικά πακέτα και εργαλεία για την κατασκευή πακέτων.
Λάβετε υπόψη ότι αυτά τα πακέτα ενδέχεται να μην περιλαμβάνουν τις πιο πρόσφατες εκδόσεις της Python ή άλλες βιβλιοθήκες και δεν διατηρούνται ή υποστηρίζονται από την βασική ομάδα της Python.
4.6. Διαμόρφωση Python¶
Για να εκτελέσετε εύκολα την Python από μια γραμμή εντολών, μπορείτε να εξετάσετε το ενδεχόμενο να αλλάξετε ορισμένες προεπιλεγμένες μεταβλητές περιβάλλοντός στα Windows. Ενώ το πρόγραμμα εγκατάστασης παρέχει μια επιλογή για τη διαμόρφωση των μεταβλητών PATH και PATHTEXT για εσάς, αυτή είναι αξιόπιστη μόνο για μια μεμονωμένη εγκατάσταση σε όλο το σύστημα. Εάν χρησιμοποιείτε τακτικά πολλές εκδόσεις της Python, σκεφτείτε να χρησιμοποιήσετε το Το πρόγραμμα εκκίνησης Python για Windows.
4.6.1. Excursus: Ρύθμιση μεταβλητών περιβάλλοντος¶
Τα Windows επιτρέπουν τη μόνιμη διαμόρφωση των μεταβλητών περιβάλλοντος τόσο σε επίπεδο χρήστη όσο και σε επίπεδο συστήματος ή προσωρινά σε μια γραμμή εντολών.
Για να ορίσετε προσωρινά μεταβλητές περιβάλλοντος, ανοίξτε τη γραμμή εντολών και χρησιμοποιήστε την εντολή set:
C:\>set PATH=C:\Program Files\Python 3.9;%PATH%
C:\>set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
C:\>python
Αυτές οι αλλαγές θα ισχύουν για τυχόν περαιτέρω εντολές που εκτελούνται σε αυτήν την κονσόλα και θα κληρονομηθούν από οποιεσδήποτε εφαρμογές ξεκινούν από την κονσόλα.
Η συμπερίληψη του ονόματος της μεταβλητής μέσα στα σημάδια ποσοστού θα επεκταθεί στην υπάρχουσα τιμή, επιτρέποντας σας να προσθέσετε τη νέα σας τιμή είτε στην αρχή είτε στο τέλος. Τροποποιώντας το PATH προσθέτοντας τον κατάλογο που περιέχει python.exe στην αρχή είναι ένας κοινός τρόπος για να διασφαλιστεί ότι η σωστή έκδοση της Python θα ξεκινήσει.
Για να τροποποιήσετε μόνιμα τις προεπιλεγμένες μεταβλητές περιβάλλοντος, κάντε κλικ στην Έναρξη και αναζητήστε “επεξεργασία μεταβλητών περιβάλλοντος”, ή ανοίξτε τις Ιδιότητες Συστήματος, Advanced system settings και κάντε κλικ στο κουμπί Environment Variables. Σε αυτό το παράθυρο διαλόγου, μπορείτε να προσθέσετε ή να τροποποιήσετε μεταβλητές χρήστη και συστήματος. Για να αλλάξετε τις μεταβλητές συστήματος, χρειάζεστε απεριόριστη πρόσβαση στον υπολογιστή σας (δηλαδή δικαιώματα διαχειριστή).
Σημείωση
Τα Windows θα συνενώσουν τις μεταβλητές χρήστη μετά τις μεταβλητές συστήματος, οι οποίες ενδέχεται να προκαλέσουν απροσδόκητα αποτελέσματα κατά την τροποποίηση του PATH.
Η μεταβλητή PYTHONPATH χρησιμοποιείται από όλες τις εκδόσεις της Python, επομένως δεν θα πρέπει να τη ρυθμίσετε μόνιμα εκτός εάν οι διαδρομές που αναφέρονται περιλαμβάνουν μόνο κώδικα που είναι συμβατός με όλες τις εγκατεστημένες εκδόσεις Python.
Δείτε επίσης
- https://docs.microsoft.com/en-us/windows/win32/procthread/environment-variables
Επισκόπηση των μεταβλητών περιβάλλοντος στα Windows
- https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1
Η εντολή
setγια την προσωρινή τροποποίηση μεταβλητών περιβάλλοντος- https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx
Η εντολή
setx, για μόνιμη τροποποίηση μεταβλητών περιβάλλοντος
4.6.2. Εύρεση του εκτελέσιμου Python¶
Άλλαξε στην έκδοση 3.5.
Εκτός από τη χρήση της καταχώρισης του μενού έναρξης που δημιουργείται αυτόματα για τον διερμηνέα Python, ίσως θελήσετε να ξεκινήσετε την Python στη γραμμή εντολών. Το πρόγραμμα εγκατάστασης έχει μια επιλογή να το ρυθμίσει για εσάς.
Στην πρώτη σελίδα του προγράμματος εγκατάστασης, μπορεί να επιλεγεί μια επιλογή με την ένδειξη «Add Python to PATH» για να προσθέσει το πρόγραμμα εγκατάστασης τη θέση εγκατάστασης στο PATH. Η θέση του φακέλου του Scripts\ προστίθεται επίσης. Αυτό σας επιτρέπει να πληκτρολογήσετε python για να εκτελέσετε τον διερμηνέα και pip για το πακέτο. Έτσι, μπορείτε να εκτελέσετε τα script σας με επιλογές γραμμής εντολών, δείτε την τεκμηρίωση Command line.
Εάν δεν ενεργοποιήσετε αυτήν την επιλογή κατά την εγκατάσταση, μπορείτε πάντα να εκτελέσετε ξανά το πρόγραμμα εγκατάστασης, να επιλέξετε Τροποποίηση, και να το ενεργοποιήσετε. Εναλλακτικά, μπορείτε να τροποποιήσετε μη αυτόματα το PATH χρησιμοποιώντας τις οδηγίες στο Excursus: Ρύθμιση μεταβλητών περιβάλλοντος. Πρέπει να ρυθμίσετε την μεταβλητή περιβάλλοντος PATH, ώστε να περιλαμβάνει τον κατάλογο της εγκατάστασης Python, οριοθετημένος με ένα ερωτηματικό από άλλες καταχωρήσεις. Ένα παράδειγμα μεταβλητής θα μπορούσε να μοιάζει με αυτό (υποθέτοντας ότι οι δύο πρώτες εγγραφές υπήρχαν ήδη):
C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Python 3.9
4.7. Λειτουργία UTF-8¶
Added in version 3.7.
Τα Windows εξακολουθούν να χρησιμοποιούν κωδικοποιήσεις παλαιού τύπου για την κωδικοποίηση του συστήματος (τη σελίδα κώδικα ANSI). Η Python τη χρησιμοποιεί για την προεπιλεγμένη κωδικοποίηση αρχείων κειμένου (π.χ. locale.getencoding()).
Αυτό μπορεί να προκαλέσει προβλήματα επειδή το UTF-8 χρησιμοποιείται ευρέως στο διαδίκτυο και στα περισσότερα συστήματα Unix, συμπεριλαμβανομένου του WSL (Windows Subsystem for Linux).
Μπορείτε να χρησιμοποιήσετε τη Python UTF-8 Mode για να αλλάξετε την προεπιλεγμένη κωδικοποίηση κειμένου σε UTF-8. Μπορείτε να ενεργοποιήσετε το Python UTF-8 Mode μέσω της επιλογής γραμμής εντολών -X utf8 ή της μεταβλητής περιβάλλοντος PYTHONUTF8=1. Βλέπε PYTHONUTF8 για την ενεργοποίηση της λειτουργίας UTF-8 και Excursus: Ρύθμιση μεταβλητών περιβάλλοντος για τον τρόπο τροποποίηση μεταβλητών περιβάλλοντος.
Όταν η Python UTF-8 Mode είναι ενεργοποιημένη, μπορείτε ακόμα να χρησιμοποιήσετε την κωδικοποίηση συστήματος (τη σελίδα κώδικα ANSI) μέσω του κωδικοποιητή «mbcs».
Λάβετε υπόψη ότι η προσθήκη PYTHONUTF8=1 στις προεπιλεγμένες μεταβλητές περιβάλλοντος θα επηρεάσει όλες τις εφαρμογές Python 3.7+ στο σύστημα σας. Εάν έχετε οποιεσδήποτε εφαρμογές Python 3.7+ που βασίζονται στην κωδικοποίηση του συστήματος παλαιού τύπου, συνιστάται να ορίσετε το περιβάλλον μεταβλητή προσωρινά ή χρησιμοποιήστε την επιλογή γραμμής εντολών -X utf8.
Σημείωση
Ακόμη και όταν η λειτουργία UTF-8 είναι απενεργοποιημένη, η Python χρησιμοποιεί το UTF-8 από προεπιλογή στα Windows για:
I/O κονσόλας με τυπικό I/O (δείτε το PEP 528 για λεπτομέρειες).
Το filesystem encoding (δείτε το PEP 529 για λεπτομέρειες).
4.8. Το πρόγραμμα εκκίνησης Python για Windows¶
Added in version 3.3.
Το πρόγραμμα εκκίνησης Python για Windows είναι ένα βοηθητικό πρόγραμμα που βοηθά στον εντοπισμό και την εκτέλεση διαφορετικών εκδόσεων Python. Επιτρέπει στα scripts (ή στη γραμμή εντολών) να υποδείξουν μια προτίμηση για μια συγκεκριμένη έκδοση Python και θα εντοπίσουν και θα εκτελέσουν αυτήν την έκδοση.
Σε αντίθεση με τη μεταβλητή PATH, το πρόγραμμα εκκίνησης θα επιλέξει σωστά την καταλληλότερη έκδοση της Python. Θα προτιμήσει τις εγκαταστάσεις ανά χρήστη έναντι των εγκαταστάσεων σε όλο το σύστημα και τις παραγγελίες ανά έκδοση γλώσσας αντί να χρησιμοποιεί την πιο πρόσφατα εγκατεστημένη έκδοση.
Το πρόγραμμα εκκίνησης προσδιορίστηκε αρχικά στο PEP 397.
4.8.1. Ξεκινώντας¶
4.8.1.1. Από τη γραμμή εντολών¶
Άλλαξε στην έκδοση 3.6.
Εγκαταστάσεις σε όλο το σύστημα της Python 3.3 και νεότερες εκδόσεις θα τοποθετήσουν το πρόγραμμα εκκίνησης στο PATH. Το πρόγραμμα εκκίνησης είναι συμβατό με όλες τις διαθέσιμες εκδόσεις της Python, επομένως δεν έχει σημασία ποια έκδοση είναι εγκατεστημένη. Για να ελέγξτε ότι το πρόγραμμα εκκίνησης είναι διαθέσιμο, εκτελέστε την ακόλουθη εντολή στη Γραμμή Εντολών:
py
Θα πρέπει να διαπιστώσετε ότι η πιο πρόσφατη έκδοση της Python που έχετε εγκαταστήσει έχει ξεκινήσει - μπορεί να βγει κανονικά και τυχόν πρόσθετα ορίσματα γραμμής εντολών που καθορίστηκαν θα σταλούν απευθείας στην Python.
Εάν έχετε εγκαταστήσει πολλές εκδόσεις της Python (π.χ. 3.7 και 3.13) θα έχετε παρατηρήσει ότι ξεκίνησε η Python 3.13 - για να εκκινήσετε την Python 3.7, δοκιμάστε την εντολή:
py -3.7
Εάν θέλετε την πιο πρόσφατη έκδοση της Python 2 που έχετε εγκαταστήσει, δοκιμάστε την εντολή:
py -2
Εάν δείτε το ακόλουθο σφάλμα, δεν έχετε εγκατεστημένο το πρόγραμμα εκκίνησης:
'py' δεν αναγνωρίζεται ως εσωτερική ή εξωτερική εντολή,
λειτουργικό πρόγραμμα ή αρχείο παρτίδας.
Η εντολή:
py --list
εμφανίζει τις τρέχουσες εγκατεστημένες εκδόσεις της Python.
Το όρισμα -x.y είναι η σύντομη μορφή του ορίσματος -V:Company/Tag, το οποίο επιτρέπει την επιλογή ενός συγκεκριμένου χρόνου εκτέλεσης Python, συμπεριλαμβανομένων εκείνων που μπορεί να έχουν προέλθει από κάπου διαφορετικά από το python.org. Οποιοσδήποτε χρόνος εκτέλεσης έχει καταχωρηθεί ακολουθώντας το PEP 514 θα είναι ανιχνεύσιμος. Η εντολή --list παραθέτει όλους τους διαθέσιμους χρόνους εκτέλεσης χρησιμοποιώντας τη μορφή -V:.
Όταν χρησιμοποιείται το όρισμα -V:, ο καθορισμός της Εταιρείας θα περιορίσει την επιλογή σε χρόνους εκτέλεσης από αυτόν τον πάροχο, ενώ ο καθορισμός μόνο της ετικέτας θα επιλέγεται από όλους τους παρόχους. Σημειώστε ότι η παράλειψη της καθέτου (slash) συνεπάγεται μια ετικέτα:
# Select any '3.*' tagged runtime
py -V:3
# Select any 'PythonCore' released runtime
py -V:PythonCore/
# Select PythonCore's latest Python 3 runtime
py -V:PythonCore/3
Η σύντομη μορφή του ορίσματος (-3) επιλέγει μόνο από τις βασικές εκδόσεις Python, και όχι άλλες διανομές. Ωστόσο, η μεγαλύτερη μορφή (-V:3) θα επιλέξει από οποιαδήποτε.
Η Εταιρεία ταιριάζει με ολόκληρη τη συμβολοσειρά, χωρίς διάκριση πεζών-κεφαλαίων. Η Ετικέτα ταιριάζει είτε με ολόκληρη τη συμβολοσειρά είτε με ένα πρόθεμα, υπό την προϋπόθεση ότι ο επόμενος χαρακτήρας είναι τελεία ή παύλα. Αυτό επιτρέπει στο -V:3.1 να ταιριάζει με το 3.1-32, αλλά όχι με το 3.10. Οι ετικέτες ταξινομούνται χρησιμοποιώντας αριθμητική σειρά (3.10 είναι νεότερο από το 3.1), αλλά συγκρίνονται χρησιμοποιώντας κείμενο (-V:3.01 δεν ταιριάζει με το 3.1).
4.8.1.2. Εικονικά Περιβάλλοντα¶
Added in version 3.5.
Εάν το πρόγραμμα εγκατάστασης εκτελείται χωρίς ρητές προδιαγραφές έκδοσης Python και ένα εικονικό περιβάλλον (δημιουργημένο με το τυπικό module βιβλιοθήκης venv ή το εξωτερικό εργαλείο virtualenv) ενεργό, το πρόγραμμα εκκίνησης θα εκτελέσει τον διερμηνέα του εικονικού περιβάλλοντος αντί για το καθολικό. Για να εκτελέσετε τον καθολικό διερμηνέα, είτε απενεργοποιήστε το εικονικό περιβάλλον είτε καθορίστε ρητά την καθολική έκδοση Python.
4.8.1.3. Από ένα script¶
Ας δημιουργήσουμε ένα δοκιμαστικό Python script - δημιουργήστε ένα αρχείο που ονομάζεται hello.py με τα ακόλουθα περιεχόμενα
#! python
import sys
sys.stdout.write("hello from Python %s\n" % (sys.version,))
Από τον κατάλογο στον οποίο ζει το hello.py, εκτελέστε την εντολή:
py hello.py
Θα πρέπει να παρατηρήσετε ότι ο αριθμός έκδοσης της τελευταίας εγκατάστασης Python 2.x έχει εκτυπωθεί. Τώρα δοκιμάστε να αλλάξετε την πρώτη γραμμή σε:
#! python3
Η επανεκτέλεση της εντολής θα πρέπει τώρα να εκτυπώσει τις πιο πρόσφατες πληροφορίες Python 3.x. Όπως και με τα παραπάνω παραδείγματα γραμμής εντολών, μπορείτε να καθορίσετε έναν πιο σαφή προσδιορισμό έκδοσης. Υποθέτοντας ότι έχετε εγκαταστήσει την Python 3.7, δοκιμάστε να αλλάξετε την πρώτη γραμμή σε #! python3.7 και θα πρέπει να βρείτε τυπωμένες τις πληροφορίες της έκδοσης 3.7.
Λάβετε υπόψη ότι σε αντίθεση με τη διαδραστική χρήση, ένα γυμνό «python» θα χρησιμοποιεί την πιο πρόσφατη έκδοση της Python 2.x που έχετε εγκαταστήσει. Αυτή είναι μια συμβατότητα προς τα πίσω και για συμβατότητα με Unix, όπου συνήθως αναφέρεται η εντολή python στην Python 2.
4.8.1.4. Από συσχετίσεις αρχείων¶
Το πρόγραμμα εκκίνησης θα έπρεπε να είχε συσχετιστεί με αρχεία Python (δηλαδή αρχεία .py, .pyw, .pyc) όταν εγκαταστάθηκε. Αυτό σημαίνει ότι όταν κάνετε διπλό κλικ σε ένα από αυτά τα αρχεία από τον Windows Explorer, το πρόγραμμα εκκίνησης θα χρησιμοποιηθεί και επομένως μπορείτε να χρησιμοποιήσετε τις ίδιες ευκολίες που περιγράφονται παραπάνω για να έχετε το script να καθορίζει ποια έκδοση θα χρησιμοποιηθεί.
Το βασικό πλεονέκτημα αυτού είναι ότι ένας μεμονωμένο πρόγραμμα εκκίνησης μπορεί να υποστηρίξει πολλές εκδόσεις Python ταυτόχρονα, ανάλογα με τα περιεχόμενα της πρώτης γραμμής.
4.8.2. Γραμμές Shebang¶
Εάν η πρώτη γραμμή ενός script αρχείου ξεκινά με #!, είναι γνωστή ως γραμμή «shebang». Το Linux και άλλα Unix λειτουργικά συστήματα έχουν εγγενή υποστήριξη για τέτοιες γραμμές και χρησιμοποιούνται συνήθως σε τέτοιες γραμμές συστήματα για να υποδείξουν πως πρέπει να εκτελεστεί ένα script. Αυτό το πρόγραμμα εκκίνησης επιτρέπει τη χρήση των ίδιων εγκαταστάσεων με Python scripts στα Windows και τα παραπάνω παραδείγματα δείχνουν τη χρήση τους.
Για να επιτραπεί στις γραμμές shebang σε Python scripts να είναι φορητές μεταξύ Unix και Windows, αυτό το πρόγραμμα εκκίνησης υποστηρίζει έναν αριθμό “εικονικών” εντολών για να καθορίσει ποιος διερμηνέας θα χρησιμοποιηθεί. Οι υποστηριζόμενες εικονικές εντολές είναι:
/usr/bin/env/usr/bin/python/usr/local/bin/pythonpython
Για παράδειγμα, εάν η πρώτη γραμμή του script σας ξεκινάει με
#! /usr/bin/python
Η προεπιλεγμένη Python ή ένα ενεργό εικονικό περιβάλλον θα εντοπιστεί και θα χρησιμοποιηθεί. Καθώς πολλά Python scripts που έχουν γραφτεί για να λειτουργούν σε Unix θα έχουν ήδη αυτή τη γραμμή, θα πρέπει να διαπιστώσετε ότι αυτά τα scripts μπορούν να χρησιμοποιηθούν από το πρόγραμμα εκκίνησης χωρίς τροποποίηση. Εάν γράφετε ένα νέο script στα Windows που ελπίζετε ότι θα είναι χρήσιμο σε Unix, θα πρέπει να χρησιμοποιήσετε μία από τις γραμμές shebang που ξεκινούν με /usr.
Οποιαδήποτε από τις παραπάνω εικονικές εντολές μπορεί να έχει επίθημα με μια ρητή έκδοση (είτε μόνο η κύρια έκδοση είτε η κύρια και η δευτερεύουσα έκδοση). Επιπλέον, η έκδοση 32-bit μπορεί να ζητηθεί προσθέτοντας «-32» μετά τη δευτερεύουσα έκδοση. Δηλαδή, /usr/bin/python3.7-32 θα ζητήσει τη χρήση της 32-bit Python 3.7. Εάν ένα εικονικό περιβάλλον είναι ενεργό, η έκδοση θα αγνοηθεί και θα χρησιμοποιηθεί το περιβάλλον.
Added in version 3.7: Ξεκινώντας με το πρόγραμμα εκκίνησης Python 3.7, είναι δυνατό να ζητηθεί η έκδοση 64-bit με το επίθημα «-64». Επιπλέον, είναι δυνατό να καθοριστεί μια κύρια έκδοση και μια αρχιτεκτονική χωρίς δευτερεύοντα (δηλαδή /usr/bin/python3-64).
Άλλαξε στην έκδοση 3.11: Το επίθημα «-64» έχει καταργηθεί, και τώρα υποδηλώνει «οποιαδήποτε αρχιτεκτονική που δεν είναι αποδεδειγμένα i386/32-bit». Για να ζητήσετε ένα συγκεκριμένο περιβάλλον, χρησιμοποιήστε το νέο -V:TAG όρισμα με την πλήρη ετικέτα.
Άλλαξε στην έκδοση 3.13: Οι εικονικές εντολές που αναφέρονται στο python προτιμούν πλέον ένα ενεργό εικονικό περιβάλλον αντί να αναζητούν στο PATH. Αυτό χειρίζεται περιπτώσεις όπου το shebang καθορίζει /usr/bin/env python3 αλλά το python3.exe δεν είναι παρόν στο ενεργό περιβάλλον.
Η φόρμα /usr/bin/env της γραμμής shebang έχει μια επιπλέον ειδική ιδιότητα. Πριν αναζητήσετε εγκατεστημένους διερμηνείς Python, αυτή η φόρμα θα αναζητήσει στο εκτελέσιμο αρχείο PATH για ένα εκτελέσιμο αρχείο Python που ταιριάζει με το όνομα που παρέχεται ως το πρώτο όρισμα. Αυτό αντιστοιχεί στη συμπεριφορά του προγράμματος Unix env, το οποίο εκτελεί μια αναζήτηση PATH. Εάν δεν μπορεί να βρεθεί ένα εκτελέσιμο αρχείο που ταιριάζει με το πρώτο όρισμα μετά την εντολή env, αλλά το όρισμα ξεκινά με python, ο χειρισμός του θα γίνει όπως περιγράφεται για τις άλλες εικονικές εντολές. Η μεταβλητή περιβάλλοντος PYLAUNCHER_NO_SEARCH_PATH μπορεί να οριστεί (σε οποιαδήποτε τιμή) για να παραλείψει αυτήν την αναζήτηση για PATH.
Οι γραμμές Shebang που δεν ταιριάζουν με κανένα από αυτά τα μοτίβα αναζητούνται στην ενότητα [commands] του προγράμματος εκκίνησης .INI file. Αυτό μπορεί να χρησιμοποιηθεί για τον χειρισμό ορισμένων εντολών με τρόπο που να έχει νόημα για το σύστημά σας. Το όνομα της εντολής πρέπει να είναι ένα μεμονωμένο όρισμα (δεν υπάρχουν κενά στο εκτελέσιμο αρχείο shebang) και η τιμή που αντικαθίσταται είναι η πλήρης διαδρομή προς το εκτελέσιμο (τα πρόσθετα ορίσματα που καθορίζονται στο .INI θα αναφέρονται ως μέρος του ονόματος αρχείου).
[commands]
/bin/xpython=C:\Program Files\XPython\python.exe
Οποιεσδήποτε εντολές που δεν βρίσκονται στο αρχείο .INI αντιμετωπίζονται ως εκτελέσιμες διαδρομές Windows που είναι απόλυτες ή σχετικές με τον κατάλογο που περιέχει το script αρχείο. Αυτό είναι μια ευκολία για σενάρια μόνο για Windows, όπως αυτά που δημιουργούνται από ένα πρόγραμμα εγκατάστασης, δεδομένου ότι η συμπεριφορά δεν είναι συμβατή με κελύφη τύπου Unix. Αυτές οι διαδρομές μπορεί να αναφέρονται και μπορεί να περιλαμβάνουν πολλαπλά ορίσματα, μετά τη διαδρομή προς το script και θα προσαρτηθούν τυχόν πρόσθετα ορίσματα.
4.8.3. Ορίσματα στις γραμμές shebang¶
Οι γραμμές shebang μπορούν επίσης να καθορίσουν πρόσθετες επιλογές που θα μεταβιβαστούν στον διερμηνέα Python. Για παράδειγμα, εάν έχετε μια γραμμή shebang:
#! /usr/bin/python -v
Στη συνέχεια, η Python θα ξεκινήσει με την επιλογή -v
4.8.4. Προσαρμογή¶
4.8.4.1. Προσαρμογή μέσω αρχείων INI¶
Θα γίνει αναζήτηση δύο αρχείων .ini από το πρόγραμμα εκκίνησης - py.ini στον κατάλογο δεδομένων εφαρμογής του τρέχοντος χρήστη (%LOCALAPPDATA% ή $env:LocalAppData) και py.ini στον ίδιο κατάλογο με το πρόγραμμα εκκίνησης. Τα ίδια αρχεία .ini χρησιμοποιούνται τόσο για την έκδοση “κονσόλας” του προγράμματος εκκίνησης (π.χ. py.exe) όσο και για την έκδοση “windows” (δηλ. pyw.exe).
Η προσαρμογή που καθορίζεται στον «κατάλογο εφαρμογών» θα έχει προτεραιότητα έναντι αυτής που βρίσκεται δίπλα στο εκτελέσιμο αρχείο, επομένως ένας χρήστης, ο οποίος ενδέχεται να μην έχει πρόσβαση εγγραφής στο αρχείο .ini δίπλα στο πρόγραμμα εκκίνησης, μπορεί να παρακάμψει εντολές σε αυτό το καθολικό .ini αρχείο.
4.8.4.2. Προσαρμογή προεπιλεγμένων εκδόσεων Python¶
Σε ορισμένες περιπτώσεις, ένας προσδιορισμός έκδοσης μπορεί να συμπεριληφθεί σε μια εντολή για να υπαγορεύσει ποια έκδοση της Python θα χρησιμοποιηθεί από την εντολή. Ένας προσδιοριστής έκδοσης ξεκινά με τον αριθμό κύριας έκδοσης και μπορεί προαιρετικά να ακολουθείται από μια τελεία (“.”) και ένας δευτερεύων προσδιοριστής έκδοσης. Επιπλέον, είναι δυνατό να καθοριστεί εάν θα ζητηθεί υλοποίηση 32 ή 64 bit προσθέτοντας «-32» ή «-64».
Για παράδειγμα, μια γραμμή shebang του #!python δεν έχει προσδιοριστικό έκδοσης, ενώ το #!python3 έχει έναν προσδιορισμό έκδοσης που καθορίζει μόνο μια κύρια έκδοση.
Εάν δεν βρεθούν κριτήρια έκδοσης σε μια εντολή, η μεταβλητή περιβάλλοντος PY_PYTHON μπορεί να οριστεί για να καθορίσει τον προσδιορισμό της προεπιλεγμένης έκδοσης. Εάν δεν έχει οριστεί, η προεπιλογή είναι «3», «3.7», «3.7-32» ή «3.7-64». (Σημειώστε ότι η επιλογή «-64» είναι διαθέσιμη μόνο με το πρόγραμμα εκκίνησης που περιλαμβάνεται στην Python 3.7 ή νεότερη έκδοση.)
Εάν δεν βρεθούν περιορισμοί δευτερεύουσας έκδοσης, η μεταβλητή περιβάλλοντος PY_PYTHON{major} (όπου {major} είναι ο προσδιορισμός της τρέχουσας κύριας έκδοσης όπως προσδιορίζεται παραπάνω) μπορεί να οριστεί για να καθορίσει την πλήρη έκδοση. Εάν όχι αν βρεθεί τέτοια επιλογή, ο εκκινητής θα απαριθμήσει τις εγκατεστημένες εκδόσεις Python και θα χρησιμοποιήσει την πιο πρόσφατη δευτερεύουσα έκδοση που βρέθηκε για την κύρια έκδοση, η οποία είναι πιθανό, αν και δεν είναι εγγυημένη, να είναι η πιο πρόσφατα εγκατεστημένη έκδοση σε αυτήν την οικογένεια.
Σε Windows 64-bit με εγκατεστημένες υλοποιήσεις 32-bit και 64-bit της ίδιας (κύριας.δευτερεύουσας) έκδοσης Python, η έκδοση 64-bit θα προτιμάται πάντα. Αυτό θα ισχύει τόσο για 32-bit όσο και για 64-bit υλοποιήσεις του προγράμματος εκκίνησης - ένα πρόγραμμα εκκίνησης 32-bit θα προτιμήσει να εκτελέσει μια εγκατάσταση Python 64-bit της καθορισμένης έκδοσης, εάν είναι διαθέσιμη. Αυτό είναι έτσι, ώστε η συμπεριφορά του προγράμματος εκκίνησης μπορεί να προβλεφθεί γνωρίζοντας μόνο ποιες εκδόσεις είναι εγκατεστημένες στον υπολογιστή και χωρίς να λαμβάνεται υπόψη η σειρά με την οποία εγκαταστάθηκαν (δηλαδή, χωρίς να γνωρίζουμε εάν μια έκδοση 32 ή 64-bit της Python και το αντίστοιχο πρόγραμμα εκκίνησης εγκαταστάθηκε τελευταίο). Όπως σημειώθηκε παραπάνω, ένα προαιρετικό επίθημα «-32» ή «-64» μπορεί να χρησιμοποιηθεί σε έναν προσδιοριστή έκδοσης για την αλλαγή αυτής της συμπεριφοράς.
Παραδείγματα:
Εάν δεν οριστούν σχετικές επιλογές, οι εντολές
pythonκαιpython2θα χρησιμοποιήσουν την πιο πρόσφατη εγκατεστημένη έκδοση Python 2.x και η εντολήpython3θα χρησιμοποιήσει την πιο πρόσφατη εγκατεστημένη Python 3.x.Η εντολή
python3.7δεν θα συμβουλευτεί καμία απολύτως επιλογή καθώς οι εκδόσεις είναι πλήρως καθορισμένες.Εάν
PY_PYTHON=3, οι εντολέςpythonκαιpython3θα χρησιμοποιούν και οι δύο την πιο πρόσφατη εγκατεστημένη έκδοση Python 3.Εάν
PY_PYTHON=3.7-32, η εντολήpythonθα χρησιμοποιήσει την υλοποίηση 32-bit του 3.7 ενώ η εντολήpython3θα χρησιμοποιήσει την πιο πρόσφατη εγκατεστημένη Python (Το PY_PYTHON δεν θεωρήθηκε καθόλου καθώς καθορίστηκε μια κύρια έκδοση.)Εάν
PY_PYTHON=3καιPY_PYTHON3=3.7, οι εντολέςpythonκαιpython3θα χρησιμοποιούν και οι δύο συγκεκριμένα την 3.7
Εκτός από τις μεταβλητές περιβάλλοντος, οι ίδιες ρυθμίσεις μπορούν να διαμορφωθούν στο αρχείο .INI που χρησιμοποιείται από το πρόγραμμα εκκίνησης. Η ενότητα στο αρχείο INI ονομάζεται [defaults] και το όνομα του κλειδιού θα είναι το ίδιο με τις μεταβλητές περιβάλλοντος χωρίς το αρχικό πρόθεμα PY_ (και σημειώστε ότι τα ονόματα κλειδιών στο αρχείο INI δεν έχουν διάκριση πεζών-κεφαλαίων.) Τα περιεχόμενα μιας μεταβλητής περιβάλλοντος θα αντικαταστήσουν τα στοιχεία που καθορίζονται στο αρχείο INI.
Για παράδειγμα:
Η ρύθμιση
PY_PYTHON=3.7είναι ισοδύναμη με το αρχείο INI που περιέχει:
[defaults]
python=3.7
Η ρύθμιση
PY_PYTHON=3καιPY_PYTHON3=3.7ισοδυναμεί με το αρχείο INI που περιέχει:
[defaults]
python=3
python3=3.7
4.8.5. Διαγνωστικά¶
Εάν μια μεταβλητή περιβάλλοντος PYLAUNCHER_DEBUG έχει οριστεί (σε οποιαδήποτε τιμή), το πρόγραμμα εκκίνησης θα εκτυπώσει διαγνωστικές πληροφορίες στο stderr (δηλαδή στην κονσόλα). Ενώ αυτές οι πληροφορίες καταφέρνουν να είναι ταυτόχρονα αναλυτικές και περιεκτικές, θα πρέπει να επιτρέπουν για να δείτε ποιες εκδόσεις της Python εντοπίστηκαν, γιατί επιλέχθηκε μια συγκεκριμένη έκδοση και η ακριβής γραμμή εντολών που χρησιμοποιήθηκε για την εκτέλεση του στόχου Python. Προορίζεται κυρίως για δοκιμή και εντοπισμό σφαλμάτων.
4.8.6. Dry Run¶
Εάν μια μεταβλητή περιβάλλοντος PYLAUNCHER_DRYRUN έχει οριστεί (σε οποιαδήποτε τιμή), το πρόγραμμα εκκίνησης θα δώσει την εντολή που θα εκτελούσε, αλλά δεν θα εκκινήσει πραγματικά την Python. Αυτό μπορεί να είναι χρήσιμο για εργαλεία που θέλουν να χρησιμοποιήσουν το πρόγραμμα εκκίνησης για να εντοπιστεί και να εκκινηθεί απευθείας η Python. Σημειώστε ότι η εντολή που είναι γραμμένη στην τυπική έξοδο κωδικοποιείται πάντα με χρήση UTF-8 και ενδέχεται να μην αποδίδεται σωστά στην κονσόλα.
4.8.7. Εγκατάσταση κατ” απαίτηση¶
Εάν μια μεταβλητή περιβάλλοντος PYLAUNCHER_ALLOW_INSTALL έχει οριστεί (σε οποιαδήποτε τιμή), και η ζητούμενη έκδοση Python δεν είναι εγκατεστημένη αλλά είναι διαθέσιμη στο Microsoft Store, το πρόγραμμα εκκίνησης θα επιχειρήσει να την εγκαταστήσει. Αυτό μπορεί να απαιτεί την ολοκλήρωση της αλληλεπίδρασης του χρήστη και ίσως χρειαστεί να εκτελέσετε ξανά την εντολή.
Μια πρόσθετη μεταβλητή PYLAUNCHER_ALWAYS_INSTALL αναγκάζει το πρόγραμμα εκκίνησης να προσπαθεί πάντα να εγκαταστήσει την Python, ακόμα κι αν εντοπιστεί. Αυτό προορίζεται κυρίως για δοκιμή (και θα πρέπει να χρησιμοποιείται με το PYLAUNCHER_DRYRUN).
4.8.8. Κωδικοί επιστροφής¶
Οι ακόλουθοι κωδικοί εξόδου ενδέχεται να επιστραφούν από το πρόγραμμα εκκίνησης της Python. Δυστυχώς, δεν υπάρχει τρόπος να διακριθούν από τον κωδικό εξόδου της ίδιας της Python.
Τα ονόματα των κωδικών είναι όπως χρησιμοποιούνται στις πηγές και είναι μόνο για αναφορά. Δεν υπάρχει τρόπος πρόσβασης ή επίλυσης τους εκτός από την ανάγνωση αυτής της σελίδας. Οι καταχωρήσεις παρατίθενται με αλφαβητική σειρά ονομάτων.
Όνομα |
Τιμή |
Περιγραφή |
|---|---|---|
RC_BAD_VENV_CFG |
107 |
Βρέθηκε ένα |
RC_CREATE_PROCESS |
101 |
Απέτυχε η εκκίνηση της Python. |
RC_INSTALLING |
111 |
Ξεκίνησε μια εγκατάσταση, αλλά η εντολή θα πρέπει να εκτελεστεί ξανά μετά την ολοκλήρωση της. |
RC_INTERNAL_ERROR |
109 |
Απροσδόκητο σφάλμα. Αναφέρετε ένα σφάλμα. |
RC_NO_COMMANDLINE |
108 |
Δεν είναι δυνατή η λήψη της γραμμής εντολών από το λειτουργικό σύστημα. |
RC_NO_PYTHON |
103 |
Δεν είναι δυνατός ο εντοπισμός της ζητούμενης έκδοσης. |
RC_NO_VENV_CFG |
106 |
Απαιτήθηκε ένα |
4.9. Εύρεση modules¶
Αυτές οι σημειώσεις συμπληρώνουν την περιγραφή The initialization of the sys.path module search path με λεπτομερείς σημειώσεις των Windows.
Όταν δεν βρεθεί αρχείο ._pth, συμπληρώνεται έτσι το sys.path στα Windows:
Μια κενή καταχώρηση προστίθεται στην αρχή, η οποία αντιστοιχεί στον τρέχοντα κατάλογο.
Εάν υπάρχει η μεταβλητή περιβάλλοντος
PYTHONPATH, όπως περιγράφεται στο Environment variables, οι εγγραφές της προστίθενται στη συνέχεια. Σημειώστε ότι στα Windows, οι διαδρομές σε αυτήν τη μεταβλητή πρέπει να διαχωρίζονται με ερωτηματικά, για να γίνει διάκριση από την άνω και κάτω τελεία που χρησιμοποιείται στα αναγνωριστικά μονάδων δίσκου (C:\κλπ.).Μπορούν να προστεθούν επιπλέον «διαδρομές εφαρμογής» στο μητρώο ως δευτερεύοντα κλειδιά του
\SOFTWARE\Python\PythonCore{version}\PythonPathκάτω από τις κυψέλεςHKEY_CURRENT_USERκαιHKEY_LOCAL_MACHINE. Τα δευτερεύοντα κλειδιά που έχουν ως προεπιλεγμένη τιμή συμβολοσειρές διαδρομής οριοθετημένη με ερωτηματικό θα προκαλέσει την προσθήκη κάθε διαδρομής στοsys.path. (Λάβετε υπόψη ότι όλα τα γνωστά προγράμματα εγκατάστασης χρησιμοποιούν μόνο HKLM, επομένως το HKCU είναι συνήθως κενό.)Εάν έχει οριστεί η μεταβλητή περιβάλλοντος
PYTHONHOME, θεωρείται ότι είναι «Python Home». Διαφορετικά, η διαδρομή του κύριου εκτελέσιμου Python χρησιμοποιείται για τον εντοπισμό ενός «αρχείου ορόσημο» (είτεLib\os.pyήpythonXY.zip) για να συμπεράνουμε το «Python Home». Αν βρεθεί ένα Python home, οι σχετικοί υποκατάλογοι που προστέθηκαν στοsys.path(Lib,plat-win, κ.λπ.) βασίζονται σε αυτόν τον φάκελο. Διαφορετικά, η διαδρομή του πυρήνα της Python δημιουργείται από το PythonPath που είναι αποθηκευμένο στο μητρώο.Εάν δεν μπορεί να εντοπιστεί το Python Home, δεν καθορίζεται
PYTHONPATHστο περιβάλλον και δεν μπορούν να βρεθούν καταχωρίσεις μητρώου, χρησιμοποιείται μια προεπιλεγμένη διαδρομή με σχετικές καταχωρήσεις (π.χ..\Lib;.\plat-win, κλπ).
Εάν ένα αρχείο pyvenv.cfg βρίσκεται δίπλα στο κύριο εκτελέσιμο αρχείο ή στον κατάλογο ένα επίπεδο πάνω από το εκτελέσιμο αρχείο, ισχύουν οι ακόλουθες παραλλαγές:
Εάν το
homeείναι μια απόλυτη διαδρομή και τοPYTHONHOMEδεν έχει οριστεί, αυτή η διαδρομή χρησιμοποιείται αντί για τη διαδρομή προς το κύριο εκτελέσιμο κατά την εξαγωγή της αρχικής τοποθεσίας.
Το τελικό αποτέλεσμα όλων αυτών είναι:
Όταν εκτελείται το
python.exe, ή οποιοδήποτε άλλο .exe στον κύριο κατάλογο της Python (είτε μια εγκατεστημένη έκδοση, είτε απευθείας από τον κατάλογο PCbuild), συνάγεται η διαδρομή του πυρήνα και οι βασικές διαφορές στο μητρώο αγνοούνται. Άλλες «διαδρομές εφαρμογής» στο μητρώο διαβάζονται πάντα.Όταν η Python φιλοξενείται σε άλλο .exe (διαφορετικός κατάλογος, ενσωματωμένος μέσω COM, κ.λπ.), το «Python Home» δεν θα συναχθεί επομένως χρησιμοποιείται η βασική διαδρομή από το μητρώο. Άλλες «διαδρομές εφαρμογής» στο μητρώο διαβάζονται πάντα.
Εάν η Python δεν μπορεί να βρει το home της και δεν υπάρχει τιμή μητρώου (frozen .exe, κάποια πολύ περίεργη εγκατάσταση) λαμβάνετε μια διαδρομή με κάποιες προεπιλεγμένες, αλλά σχετικές, διαδρομές.
Για όσους θέλουν να ενσωματώσουν την Python στην εφαρμογή ή την διανομή τους, οι ακόλουθες συμβουλές θα αποτρέψουν τις διενέξεις με άλλες εγκαταστάσεις:
Συμπεριλάβετε ένα αρχείο
._pthδίπλα στο εκτελέσιμο αρχείο σας που περιέχει τους καταλόγους που θέλετε να συμπεριλάβετε. Αυτό θα αγνοήσει τις διαδρομές που παρατίθενται στο μητρώο και τις μεταβλητές περιβάλλοντος και θα αγνοήσει επίσης τοsiteεκτός εάν αναφέρεται τοimport site.Εάν φορτώνετε το
python3.dllή τοpython37.dllστο δικό σας εκτελέσιμο αρχείο, ορίστε ρητά τοPyConfig.module_search_pathsπριν από τοPy_InitializeFromConfig().Διαγράψτε και/ή αντικαταστήστε το
PYTHONPATHκαι ορίστε τοPYTHONHOME πριν από την εκκίνηση του :file:`python.exeαπό την εφαρμογή σας.Εάν δεν μπορείτε να χρησιμοποιήσετε τις προηγούμενες προτάσεις (για παράδειγμα, είστε μια διανομή που επιτρέπει στους χρήστες να εκτελούν απευθείας το
python.exe), βεβαιωθείτε ότι το αρχείο ορόσημο (Lib\os.py) υπάρχει στον κατάλογο εγκατάστασης σας. (Λάβετε υπόψη ότι δεν θα εντοπιστεί σε ένα αρχείο ZIP, αλλά θα εντοπιστεί ένα αρχείο ZIP με το σωστό όνομα.)
Αυτά θα διασφαλίσουν ότι τα αρχεία σε μια εγκατάσταση σε όλο το σύστημα δεν θα υπερισχύουν του αντιγράφου της τυπικής βιβλιοθήκης που συνοδεύει την εφαρμογή σας. Διαφορετικά, οι χρήστες σας ενδέχεται να αντιμετωπίσουν προβλήματα με τη χρήση της εφαρμογής σας. Λάβετε υπόψη ότι η πρώτη πρόταση είναι η καλύτερη, καθώς τα άλλα μπορεί να εξακολουθούν να είναι επιρρεπή σε μη τυπικές διαδρομές στο μητρώο και στα πακέτα ιστοτόπων χρηστών.
Άλλαξε στην έκδοση 3.6: Προσθήκη υποστήριξης αρχείου ._pth και καταργείται η επιλογή applocal από το pyvenv.cfg.
Άλλαξε στην έκδοση 3.6: Προσθήκη pythonXX.zip ως πιθανό ορόσημο όταν βρίσκεται ακριβώς δίπλα στο εκτελέσιμο αρχείο.
Αποσύρθηκε στην έκδοση 3.6: Τα modules που καθορίζονται στο μητρώο στην περιοχή Modules (όχι PythonPath) μπορούν να εισαχθούν από το importlib.machinery.WindowsRegistryFinder. Αυτό το πρόγραμμα εύρεσης είναι ενεργοποιημένο στα Windows σε 3.6.0 και παλαιότερες εκδόσεις, αλλά ενδέχεται να πρέπει να προστεθεί ρητά στο sys.meta_path στο μέλλον.
4.10. Πρόσθετα modules¶
Αν και η Python στοχεύει να είναι φορητή σε όλες τις πλατφόρμες, υπάρχουν δυνατότητες που είναι μοναδικές για τα Windows. Μερικά modules, τόσο στην τυπική βιβλιοθήκη όσο και στην εξωτερική, και αποσπάσματα υπάρχουν για χρήση αυτών των δυνατοτήτων.
Τα τυπικά modules ειδικά για Windows τεκμηριώνονται στο MS Windows Specific Services.
4.10.1. PyWin32¶
Το module PyWin32 του Mark Hammond είναι μια συλλογή από modules για προηγμένη υποστήριξη ειδικά για Windows. Αυτό περιλαμβάνει βοηθητικά προγράμματα για:
Component Object Model (COM)
Win32 API κλήσεις
Μητρώο
Μητρώο συμβάντων
Τα Microsoft Foundation Classes (MFC) διεπαφές χρήστη
Το PythonWin είναι ένα δείγμα εφαρμογής MFC που αποστέλλεται με το PyWin32. Είναι ένα ενσωματωμένο IDE με ενσωματωμένο πρόγραμμα εντοπισμού σφαλμάτων.
Δείτε επίσης
- Win32 How Do I…?
από τον Tim Golden
- Python and COM
από τους David και Paul Boddie
4.10.2. cx_Freeze¶
Το cx_Freeze αναδιπλώνει Python scripts σε εκτελέσιμα προγράμματα των Windows (*.exe αρχεία). Όταν το κάνετε αυτό, μπορείτε να διανείμετε την εφαρμογή σας χωρίς να απαιτείται από τους χρήστες σας να εγκαταστήσουν την Python.
4.11. Μεταγλώττιση Python στα Windows¶
Εάν θέλετε να μεταγλωττίσετε μόνοι σας το CPython, το πρώτο πράγμα που πρέπει να κάνετε είναι να λάβετε το source. Μπορείτε να κάνετε λήψη είτε τον πηγαίο κώδικα της πιο πρόσφατης έκδοσης είτε απλώς να πάρετε μια φρέσκια έκδοση checkout.
Το δέντρο προέλευσης περιέχει μια λύση έκδοσης και αρχεία έργου για το Microsoft Visual Studio, που είναι ο μεταγλωττιστής που χρησιμοποιείται για τη δημιουργία των επίσημων εκδόσεων Python. Αυτά τα αρχεία βρίσκονται στον κατάλογο PCbuild.
Ελέγξτε το PCbuild/readme.txt για γενικές πληροφορίες σχετικά με τη διαδικασία κατασκευής.
Για modules επέκτασης, συμβουλευτείτε το Building C and C++ Extensions on Windows.
4.12. Άλλες Πλατφόρμες¶
Με τη συνεχή ανάπτυξη της Python, ορισμένες πλατφόρμες που υποστηριζόταν παλαιότερα δεν υποστηρίζονται πλέον (λόγω έλλειψης χρηστών ή προγραμματιστών). Ελέγξτε το PEP 11 για λεπτομέρειες σχετικά με όλες τις μη υποστηριζόμενες πλατφόρμες.
Το Windows CE no longer supported από την Python 3 (αν ήταν ποτέ).
Το πρόγραμμα εγκατάστασης Cygwin προσφέρει επίσης την εγκατάσταση του διερμηνέα Python <https://cygwin.com/packages/summary/python3.html>`
Ανατρέξτε στην ενότητα Python for Windows για λεπτομερείς πληροφορίες σχετικά με πλατφόρμες με προμεταγλωττισμένα προγράμματα εγκατάστασης.