4. Χρησιμοποιώντας Python στα Windows¶
Αυτό το έγγραφο στοχεύει να δώσει μια επισκόπηση της συμπεριφοράς των Windows που πρέπει να γνωρίζετε, όταν χρησιμοποιείτε την Python στα Microsoft Windows.
Σε αντίθεση με τα περισσότερα συστήματα και υπηρεσίες Unix, τα Windows δεν περιλαμβάνουν μια υποστηριζόμενη από το σύστημα εγκατάσταση της Python. Αντίθετα, η Python μπορεί να αποκτηθεί από αρκετούς διανομείς, συμπεριλαμβανομένης της άμεσης λήψης από την ομάδα CPython. Κάθε διανομή Python θα έχει τα δικά της πλεονεκτήματα και μειονεκτήματα, ωστόσο, η συνέπεια με άλλα εργαλεία που χρησιμοποιείτε είναι γενικά ένα αξιόλογο πλεονέκτημα. Πριν δεσμευτείτε στη διαδικασία που περιγράφεται εδώ, συνιστούμε να ερευνήσετε τα υπάρχοντα εργαλεία σας για να δείτε αν μπορούν να παρέχουν την Python απευθείας.
Για να αποκτήσετε την Python από την ομάδα CPython, χρησιμοποιήστε τον Python Install Manager. Αυτό είναι ένα αυτόνομο εργαλείο που καθιστά την Python διαθέσιμη ως παγκόσμιες εντολές στον υπολογιστή σας με Windows, ενσωματώνεται με το σύστημα και υποστηρίζει ενημερώσεις με την πάροδο του χρόνου. Μπορείτε να κατεβάσετε τον Python Install Manager από το python.org/downloads ή μέσω του Microsoft Store app.
Μόλις εγκαταστήσετε τον Python Install Manager, η παγκόσμια εντολή python μπορεί να χρησιμοποιηθεί από οποιοδήποτε τερματικό για να εκκινήσει την τρέχουσα τελευταία έκδοση της Python. Αυτή η έκδοση μπορεί να αλλάξει με την πάροδο του χρόνου καθώς προσθέτετε ή αφαιρείτε διαφορετικές εκδόσεις, και η εντολή py list θα δείξει ποια είναι η τρέχουσα.
Γενικά, συνιστούμε να δημιουργήσετε ένα εικονικό περιβάλλον για κάθε έργο και να εκτελέσετε <env>\Scripts\Activate στο τερματικό σας για να το χρησιμοποιήσετε. Αυτό παρέχει απομόνωση μεταξύ των έργων, συνέπεια με την πάροδο του χρόνου και διασφαλίζει ότι οι επιπλέον εντολές που προστίθενται από τα πακέτα είναι επίσης διαθέσιμες στη συνεδρία σας. Δημιουργήστε ένα εικονικό περιβάλλον χρησιμοποιώντας python -m venv <env path>.
Εάν οι εντολές python ή py δεν φαίνεται να λειτουργούν, παρακαλούμε δείτε την ενότητα Επίλυση προβλημάτων παρακάτω. Υπάρχουν μερικές φορές επιπλέον χειροκίνητα βήματα που απαιτούνται για τη διαμόρφωση του υπολογιστή σας.
Εκτός από τη χρήση του διαχειριστή εγκατάστασης Python, η Python μπορεί επίσης να αποκτηθεί ως πακέτο NuGet. Δείτε Τα πακέτα nuget.org παρακάτω για περισσότερες πληροφορίες σχετικά με αυτά τα πακέτα.
Οι ενσωματώσιμες διανομές είναι ελάχιστα πακέτα της Python κατάλληλα για ενσωμάτωση σε μεγαλύτερες εφαρμογές. Μπορούν να εγκατασταθούν χρησιμοποιώντας τον διαχειριστή εγκατάστασης Python. Δείτε Το ενσωματωμένο πακέτο παρακάτω για περισσότερες πληροφορίες σχετικά με αυτά τα πακέτα.
4.1. Python install manager¶
4.1.1. Εγκατάσταση¶
Ο διαχειριστής εγκατάστασης Python μπορεί να εγκατασταθεί από την εφαρμογή Microsoft Store app ή να ληφθεί και να εγκατασταθεί από το python.org/downloads. Οι δύο εκδόσεις είναι ταυτόσημες.
Για να εγκαταστήσετε μέσω του Store, απλώς κάντε κλικ στο «Εγκατάσταση». Αφού ολοκληρωθεί, ανοίξτε ένα τερματικό και πληκτρολογήστε python για να ξεκινήσετε.
Για να εγκαταστήσετε το αρχείο που κατεβάσατε από το python.org, είτε κάντε διπλό κλικ και επιλέξτε «Εγκατάσταση», είτε εκτελέστε Add-AppxPackage <διαδρομή προς MSIX> στα Windows Powershell.
Μετά την εγκατάσταση, οι εντολές python, py και pymanager θα πρέπει να είναι διαθέσιμες. Αν έχετε υπάρχουσες εγκαταστάσεις της Python, ή έχετε τροποποιήσει τη μεταβλητή PATH, ίσως χρειαστεί να τις αφαιρέσετε ή να αναιρέσετε τις τροποποιήσεις. Δείτε Αντιμετώπιση προβλημάτων για περισσότερη βοήθεια σχετικά με την αποκατάσταση μη λειτουργικών εντολών.
Όταν εγκαθιστάτε για πρώτη φορά ένα runtime, πιθανότατα θα σας ζητηθεί να προσθέσετε έναν φάκελο στη μεταβλητή PATH. Αυτό είναι προαιρετικό, αν προτιμάτε να χρησιμοποιήσετε την εντολή py, αλλά προσφέρεται για όσους προτιμούν να είναι διαθέσιμη η πλήρης γκάμα ψευδωνύμων (όπως το python3.14.exe). Ο φάκελος θα είναι %LocalAppData%\Python\bin από προεπιλογή, αλλά μπορεί να προσαρμοστεί από έναν διαχειριστή. Κάντε κλικ στο Έναρξη και αναζητήστε «Επεξεργασία μεταβλητών περιβάλλοντος για τον λογαριασμό σας» για τη σελίδα ρυθμίσεων συστήματος για να προσθέσετε τη διαδρομή.
Κάθε runtime της Python που εγκαθιστάτε θα έχει το δικό του φάκελο για σενάρια. Αυτά πρέπει επίσης να προστεθούν στη μεταβλητή PATH αν θέλετε να τα χρησιμοποιήσετε.
Ο διαχειριστής εγκατάστασης Python θα ενημερώνεται αυτόματα σε νέες εκδόσεις. Αυτό δεν επηρεάζει καμία εγκατάσταση runtime της Python. Η απεγκατάσταση του διαχειριστή εγκατάστασης Python δεν απεγκαθιστά καμία εγκατάσταση runtime της Python.
Εάν δεν μπορείτε να εγκαταστήσετε ένα MSIX στο πλαίσιο σας, για παράδειγμα, χρησιμοποιείτε λογισμικό αυτοματοποιημένης ανάπτυξης που δεν το υποστηρίζει, ή στοχεύετε τα Windows Server 2019, παρακαλώ δείτε Advanced installation παρακάτω για περισσότερες πληροφορίες.
4.1.2. Basic use¶
Η συνιστώμενη εντολή για την εκκίνηση της Python είναι python, η οποία θα εκκινήσει είτε την έκδοση που ζητείται από το σενάριο που εκκινείται, είτε ένα ενεργό εικονικό περιβάλλον, είτε την προεπιλεγμένη εγκατεστημένη έκδοση, η οποία θα είναι η τελευταία σταθερή έκδοση εκτός αν έχει ρυθμιστεί διαφορετικά. Εάν δεν ζητηθεί συγκεκριμένα καμία έκδοση και δεν είναι εγκατεστημένες καθόλου εκδόσεις, η τρέχουσα τελευταία έκδοση θα εγκατασταθεί αυτόματα.
Για όλα τα σενάρια που περιλαμβάνουν πολλαπλές εκδόσεις runtime, η συνιστώμενη εντολή είναι py. Αυτή μπορεί να χρησιμοποιηθεί οπουδήποτε αντί για python ή τον παλαιότερο εκκινητή py.exe. Από προεπιλογή, το py ταιριάζει με τη συμπεριφορά του python, αλλά επιτρέπει επίσης επιλογές γραμμής εντολών για την επιλογή μιας συγκεκριμένης έκδοσης, καθώς και υποεντολές για τη διαχείριση εγκαταστάσεων. Αυτές περιγράφονται λεπτομερώς
Επειδή η εντολή py μπορεί ήδη να χρησιμοποιείται από την προηγούμενη έκδοση, υπάρχει επίσης μια αναμφισβήτητη εντολή pymanager. Οι αυτοματοποιημένες εγκαταστάσεις που σκοπεύουν να χρησιμοποιήσουν τον διαχειριστή εγκατάστασης Python θα πρέπει να εξετάσουν τη χρήση του pymanager, λόγω της χαμηλότερης πιθανότητας να προκύψει σύγκρουση με υπάρχουσες εγκαταστάσεις. Η μόνη διαφορά μεταξύ των δύο εντολών είναι όταν εκτελούνται χωρίς κανένα επιχείρημα: py θα εγκαταστήσει και θα εκκινήσει τον προεπιλεγμένο διερμηνέα σας, ενώ το pymanager θα εμφανίσει βοήθεια (pymanager exec ... παρέχει ισοδύναμη συμπεριφορά με το py ...).
Κάθε μία από αυτές τις εντολές έχει επίσης μια έκδοση με παράθυρο που αποφεύγει τη δημιουργία ενός παραθύρου κονσόλας. Αυτές είναι οι pyw, pythonw και pymanagerw. Μια εντολή python3 περιλαμβάνεται επίσης που μιμείται την εντολή python. Είναι σχεδιασμένη να συλλαμβάνει τυχαίες χρήσεις της τυπικής εντολής POSIX σε Windows, αλλά δεν προορίζεται να χρησιμοποιείται ευρέως ή να συνιστάται.
Για να εκκινήσετε το προεπιλεγμένο χρόνο εκτέλεσης σας, εκτελέστε το python ή το py με τα ορίσματα που θέλετε να περαστούν στο χρόνο εκτέλεσης (όπως αρχεία σεναρίων ή το module για εκκίνηση):
$> py
...
$> python my-script.py
...
$> py -m this
...
Ο προεπιλεγμένος χρόνος εκτέλεσης μπορεί να παρακαμφθεί με τη μεταβλητή περιβάλλοντος PYTHON_MANAGER_DEFAULT, ή ένα αρχείο διαμόρφωσης. Δείτε Διαμόρφωση για πληροφορίες σχετικά με τις ρυθμίσεις διαμόρφωσης.
Για να εκκινήσετε ένα συγκεκριμένο χρόνο εκτέλεσης, η εντολή py δέχεται μια επιλογή -V:<TAG>. Αυτή η επιλογή πρέπει να καθοριστεί πριν από οποιεσδήποτε άλλες. Το tag είναι μέρος ή όλο το αναγνωριστικό για το χρόνο εκτέλεσης. Για αυτά από την ομάδα CPython, μοιάζει με την έκδοση, πιθανώς με την πλατφόρμα. Για λόγους συμβατότητας, το V: μπορεί να παραλειφθεί σε περιπτώσεις όπου το tag αναφέρεται σε μια επίσημη έκδοση και ξεκινά με 3.
$> py -V:3.14 ...
$> py -V:3-arm64 ...
Οι χρόνοι εκτέλεσης από άλλους διανομείς μπορεί να απαιτούν να συμπεριληφθεί και η εταιρεία. Αυτό θα πρέπει να διαχωρίζεται από το tag με μια κάθετο, και μπορεί να είναι ένα πρόθεμα. Η καθορισμός της εταιρείας είναι προαιρετικός όταν είναι PythonCore, και η καθορισμός του tag είναι προαιρετικός (αλλά όχι η κάθετος) όταν θέλετε την τελευταία έκδοση
$> py -V:Distributor\1.0 ...
$> py -V:distrib/ ...
Εάν δεν καθοριστεί καμία έκδοση, αλλά περαστεί ένα αρχείο σεναρίου, το σενάριο θα επιθεωρηθεί για μια shebang line. Αυτό είναι μια ειδική μορφή για την πρώτη γραμμή σε ένα αρχείο που επιτρέπει την παράκαμψη της εντολής. Δείτε Γραμμές Shebang για περισσότερες πληροφορίες. Όταν δεν υπάρχει shebang line, ή δεν μπορεί να επιλυθεί, το σενάριο θα εκκινήσει με το προεπιλεγμένο χρόνο εκτέλεσης.
Εάν τρέχετε σε ένα ενεργό εικονικό περιβάλλον, δεν έχετε ζητήσει μια συγκεκριμένη έκδοση, και δεν υπάρχει shebang line, το προεπιλεγμένο runtime θα είναι αυτό το εικονικό περιβάλλον.Σε αυτό το σενάριο, η εντολή python πιθανότατα είχε ήδη παρακαμφθεί και κανένας από αυτούς τους ελέγχους δεν συνέβη. Ωστόσο, αυτή η συμπεριφορά διασφαλίζει ότι η εντολή py μπορεί να χρησιμοποιηθεί εναλλακτικά.
Όταν εκκινείτε είτε το python είτε το py αλλά δεν έχετε εγκατεστημένους χρόνους εκτέλεσης, και η ζητούμενη έκδοση είναι η προεπιλεγμένη, θα εγκατασταθεί αυτόματα και στη συνέχεια θα εκκινήσει. Διαφορετικά, η ζητούμενη έκδοση θα εγκατασταθεί εάν η αυτόματη εγκατάσταση είναι ρυθμισμένη (πιθανότατα ορίζοντας το PYTHON_MANAGER_AUTOMATIC_INSTALL σε true), ή εάν χρησιμοποιήθηκαν οι μορφές py exec ή pymanager exec της εντολής.
4.1.3. Command help¶
Η εντολή py help θα εμφανίσει την πλήρη λίστα των υποστηριζόμενων εντολών, μαζί με τις επιλογές τους. Οποιαδήποτε εντολή μπορεί να περάσει την επιλογή -? για να εμφανίσει τη βοήθειά της, ή το όνομά της μπορεί να περαστεί στην εντολή py help.
$> py help
$> py help install
$> py install /?
Όλες οι εντολές υποστηρίζουν μερικές κοινές επιλογές, οι οποίες θα εμφανιστούν από το py help. Αυτές οι επιλογές πρέπει να καθοριστούν μετά από οποιοδήποτε υποεντολή. Ο καθορισμός του -v ή --verbose θα αυξήσει την ποσότητα της εμφανιζόμενης εξόδου, και -vv θα την αυξήσει περαιτέρω για σκοπούς αποσφαλμάτωσης. Η μετάβαση του -q ή --quiet θα μειώσει την έξοδο, και -qq θα την μειώσει περαιτέρω.
Η επιλογή --config=<PATH> επιτρέπει τον καθορισμό ενός αρχείου διαμόρφωσης για να παρακαμφθούν πολλές ρυθμίσεις ταυτόχρονα. Δείτε Διαμόρφωση παρακάτω για περισσότερες πληροφορίες σχετικά με αυτά τα αρχεία.
4.1.4. Listing runtimes¶
$> py list [-f=|--format=<FMT>] [-1|--one] [--online|-s=|--source=<URL>] [<TAG>...]
Η λίστα των εγκατεστημένων χρόνων εκτέλεσης μπορεί να προβληθεί χρησιμοποιώντας το py list. Μπορεί να προστεθεί ένα φίλτρο με τη μορφή ενός ή περισσότερων tags (με ή χωρίς καθοριστή εταιρείας), και το καθένα μπορεί να περιλαμβάνει ένα πρόθεμα <, <=, >= ή > για περιορισμό σε μια περιοχή.
Ένα εύρος μορφών υποστηρίζεται, και μπορεί να περαστεί ως η επιλογή --format=<FMT> ή -f <FMT>. Οι μορφές περιλαμβάνουν table (μια φιλική προς το χρήστη προβολή πίνακα), csv (πίνακας με κόμμα-διαχωρισμό), json (ένα μόνο JSON blob), jsonl (ένα JSON blob ανά αποτέλεσμα), exe (μόνο η διαδρομή εκτελέσιμου), prefix (μόνο η διαδρομή προθέματος).
Το --one ή -1 εμφανίζει μόνο ένα αποτέλεσμα. Εάν περιλαμβάνεται ο προεπιλεγμένος χρόνος εκτέλεσης, θα είναι αυτός. Διαφορετικά, εμφανίζεται το «καλύτερο» αποτέλεσμα (το «καλύτερο» είναι σκόπιμα ασαφώς ορισμένο, αλλά συνήθως θα είναι η πιο πρόσφατη έκδοση). Το αποτέλεσμα που εμφανίζεται από το py list --one <TAG> θα ταιριάξει με το χρόνο εκτέλεσης που θα εκκινηθεί από το py -V:<TAG>.
Η επιλογή --only-managed εξαιρεί αποτελέσματα που δεν εγκαταστάθηκαν από τον διαχειριστή εγκατάστασης Python. Αυτό είναι χρήσιμο κατά τον προσδιορισμό των χρόνων εκτέλεσης που μπορούν να ενημερωθούν ή να απεγκατασταθούν μέσω της εντολής py.
Η επιλογή --online είναι συντομογραφία για τη μετάβαση του --source=<URL> με την προεπιλεγμένη πηγή. Η μετάβαση οποιασδήποτε από αυτές τις επιλογές θα αναζητήσει στο διαδικτυακό ευρετήριο για χρόνους εκτέλεσης που μπορούν να εγκατασταθούν. Το αποτέλεσμα που εμφανίζεται από το py list --online --one <TAG> θα ταιριάξει με το χρόνο εκτέλεσης που θα εγκατασταθεί από το py install <TAG>.
$> py list --online 3.14
Για συμβατότητα με τον παλιό εκκινητή, οι εντολές --list, --list-paths, -0 και -0p (π.χ. py -0p) διατηρούνται. Δεν επιτρέπουν πρόσθετες επιλογές, και θα παράγουν έξοδο σε παλιά μορφή.
4.1.5. Installing runtimes¶
$> py install [-s=|--source=<URL>] [-f|--force] [-u|--update] [--dry-run] [<TAG>...]
Νέες εκδόσεις χρόνων εκτέλεσης μπορούν να προστεθούν χρησιμοποιώντας το py install. Μπορεί να καθοριστεί ένα ή περισσότερα tags, και το ειδικό tag default μπορεί να χρησιμοποιηθεί για την επιλογή του προεπιλεγμένου. Οι περιοχές δεν υποστηρίζονται για εγκατάσταση.
Η επιλογή --source=<URL> επιτρέπει την παράκαμψη του διαδικτυακού ευρετηρίου που χρησιμοποιείται για την απόκτηση χρόνων εκτέλεσης. Αυτό μπορεί να χρησιμοποιηθεί με ευρετήριο εκτός σύνδεσης, όπως φαίνεται στο Offline installs.
Περνώντας την επιλογή --force θα αγνοήσει τυχόν αρχεία στην προσωρινή μνήμη και θα αφαιρέσει οποιαδήποτε υπάρχουσα εγκατάσταση για να την αντικαταστήσει με την καθορισμένη.
Περνώντας την επιλογή --update θα αντικαταστήσει υπάρχουσες εγκαταστάσεις εάν η νέα έκδοση είναι νεότερη. Διαφορετικά, θα παραμείνουν. Εάν δεν παρέχονται tags με το --update, όλες οι εγκαταστάσεις που διαχειρίζεται ο διαχειριστής εγκατάστασης Python θα ενημερωθούν εάν υπάρχουν νεότερες εκδόσεις. Οι ενημερώσεις θα αφαιρέσουν τυχόν τροποποιήσεις που έγιναν στην εγκατάσταση, συμπεριλαμβανομένων των παγκοσμίως εγκατεστημένων πακέτων, αλλά τα εικονικά περιβάλλοντα θα συνεχίσουν να λειτουργούν.
Περνώντας την επιλογή --dry-run θα δημιουργήσει έξοδο και αρχεία καταγραφής, αλλά δεν θα τροποποιήσει καμία εγκατάσταση.
Εκτός από τις παραπάνω επιλογές, η επιλογή --target θα εξαγάγει το χρόνο εκτέλεσης στον καθορισμένο κατάλογο αντί να κάνει μια κανονική εγκατάσταση. Αυτό είναι χρήσιμο για την ενσωμάτωση χρόνων εκτέλεσης σε μεγαλύτερες εφαρμογές.
$> py install ... [-t=|--target=<PATH>] <TAG>
4.1.6. Offline installs¶
Για να πραγματοποιήσετε εγκαταστάσεις εκτός σύνδεσης της Python, θα χρειαστεί πρώτα να δημιουργήσετε ένα ευρετήριο εκτός σύνδεσης σε ένα μηχάνημα που έχει πρόσβαση στο δίκτυο.
$> py install --download=<PATH> ... <TAG>...
Η επιλογή --download=<PATH> θα κατεβάσει τα πακέτα για τα καταχωρημένα tags και θα δημιουργήσει έναν κατάλογο που τα περιέχει και ένα αρχείο index.json κατάλληλο για μεταγενέστερη εγκατάσταση. Ολόκληρος αυτός ο κατάλογος μπορεί να μετακινηθεί στο μηχάνημα εκτός σύνδεσης και να χρησιμοποιηθεί για την εγκατάσταση ενός ή περισσότερων από τους παρεχόμενους χρόνους εκτέλεσης:
$> py install --source="<PATH>\index.json" <TAG>...
Ο διαχειριστής εγκατάστασης Python μπορεί να εγκατασταθεί κατεβάζοντας τον εγκαταστάτη του και μεταφέροντάς τον σε άλλο μηχάνημα πριν την εγκατάσταση.
Διαφορετικά, τα αρχεία ZIP σε έναν κατάλογο ευρετηρίου εκτός σύνδεσης μπορούν απλά να μεταφερθούν σε άλλο μηχάνημα και να εξαχθούν. Αυτό δεν θα καταχωρήσει την εγκατάσταση με κανέναν τρόπο, και έτσι πρέπει να εκκινηθεί αναφερόμενο απευθείας στα εκτελέσιμα αρχεία στον εξαγόμενο φάκελο, αλλά μερικές φορές είναι μια προτιμότερη προσέγγιση σε περιπτώσεις όπου η εγκατάσταση του διαχειριστή εγκατάστασης Python δεν είναι δυνατή ή βολική.
Με αυτόν τον τρόπο, οι χρόνοι εκτέλεσης της Python μπορούν να εγκατασταθούν και να διαχειριστούν σε ένα μηχάνημα χωρίς πρόσβαση στο διαδίκτυο.
4.1.7. Uninstalling runtimes¶
$> py uninstall [-y|--yes] <TAG>...
Οι χρόνοι εκτέλεσης μπορούν να αφαιρεθούν χρησιμοποιώντας την εντολή py uninstall. Πρέπει να καθοριστούν μία ή περισσότερες ετικέτες. Οι περιοχές δεν υποστηρίζονται εδώ.
Η επιλογή --yes παρακάμπτει την προτροπή επιβεβαίωσης πριν από την απεγκατάσταση.
Διαφορετικά από το να περάσετε ετικέτες μεμονωμένα, μπορεί να καθοριστεί η επιλογή --purge. Αυτό θα αφαιρέσει όλους τους χρόνους εκτέλεσης που διαχειρίζεται ο διαχειριστής εγκατάστασης Python, συμπεριλαμβανομένου του καθαρισμού του μενού Έναρξης, του μητρώου και τυχόν προσωρινών αποθηκεύσεων λήψης. Οι χρόνοι εκτέλεσης που δεν εγκαταστάθηκαν από τον διαχειριστή εγκατάστασης Python δεν θα επηρεαστούν, και ούτε τα χειροκίνητα δημιουργημένα αρχεία διαμόρφωσης.
$> py uninstall [-y|--yes] --purge
Ο διαχειριστής εγκατάστασης Python μπορεί να απεγκατασταθεί μέσω της σελίδας ρυθμίσεων των Windows «Εγκατεστημένες εφαρμογές». Αυτό δεν αφαιρεί κανέναν χρόνο εκτέλεσης, και θα εξακολουθούν να είναι χρησιμοποιήσιμοι, αν και οι παγκόσμιες εντολές python και py θα αφαιρεθούν. Η επανεγκατάσταση του διαχειριστή εγκατάστασης Python θα σας επιτρέψει να διαχειριστείτε αυτούς τους χρόνους εκτέλεσης ξανά. Για να καθαρίσετε πλήρως όλους τους χρόνους εκτέλεσης Python, εκτελέστε με --purge πριν από την απεγκατάσταση του διαχειριστή εγκατάστασης Python.
4.1.8. Διαμόρφωση¶
Ο διαχειριστής εγκατάστασης Python διαμορφώνεται με μια ιεραρχία αρχείων διαμόρφωσης, μεταβλητών περιβάλλοντος, επιλογών γραμμής εντολών, και ρυθμίσεων μητρώου. Γενικά, τα αρχεία διαμόρφωσης έχουν τη δυνατότητα να διαμορφώσουν τα πάντα, συμπεριλαμβανομένης της τοποθεσίας άλλων αρχείων διαμόρφωσης, ενώ οι ρυθμίσεις μητρώου είναι μόνο για διαχειριστές και θα παρακάμψουν τα αρχεία διαμόρφωσης.
Αυτή η ενότητα θα περιγράψει τις προεπιλογές, αλλά να γνωρίζετε ότι οι τροποποιημένες ή παρακαμφθείσες εγκαταστάσεις μπορεί να επιλύσουν τις ρυθμίσεις διαφορετικά.
Ένα παγκόσμιο αρχείο διαμόρφωσης μπορεί να ρυθμιστεί από έναν διαχειριστή, και θα διαβαστεί πρώτο. Το αρχείο διαμόρφωσης χρήστη αποθηκεύεται στο %AppData%\Python\pymanager.json (κατά προεπιλογή) και διαβάζεται στη συνέχεια, αντικαθιστώντας οποιεσδήποτε ρυθμίσεις από προηγούμενα αρχεία. Ένα επιπλέον αρχείο διαμόρφωσης μπορεί να καθοριστεί ως η μεταβλητή περιβάλλοντος PYTHON_MANAGER_CONFIG ή η επιλογή γραμμής εντολών --config (αλλά όχι και τα δύο).
Οι ακόλουθες ρυθμίσεις είναι αυτές που θεωρούνται πιθανό να τροποποιηθούν σε κανονική χρήση. Οι επόμενες ενότητες απαριθμούν αυτές που προορίζονται για διοικητική προσαρμογή.
Τυπικές επιλογές διαμόρφωσης
Κλειδί Διαμόρφωσης |
Μεταβλητή Περιβάλλοντος |
Περιγραφή |
|---|---|---|
|
|
Η προτιμώμενη προεπιλεγμένη έκδοση για εκκίνηση ή εγκατάσταση. Κατά προεπιλογή, αυτό ερμηνεύεται ως η πιο πρόσφατη μη-προκαταρκτική έκδοση από την ομάδα CPython. |
|
|
Η προτιμώμενη προεπιλεγμένη πλατφόρμα για εκκίνηση ή εγκατάσταση. Αυτό αντιμετωπίζεται ως κατάληξη στο καθορισμένο tag, έτσι ώστε το |
|
|
Η τοποθεσία όπου γράφονται τα αρχεία καταγραφής. Κατά προεπιλογή, |
|
|
True για να επιτρέπεται η αυτόματη εγκατάσταση κατά τον καθορισμό ενός συγκεκριμένου χρόνου εκτέλεσης για εκκίνηση. Κατά προεπιλογή, true. |
|
|
True για να επιτρέπεται η καταχώριση και η εκκίνηση χρόνων εκτέλεσης που δεν εγκαταστάθηκαν από τον διαχειριστή εγκατάστασης Python, ή false για να τους εξαιρέσετε. Κατά προεπιλογή, true. |
|
|
True για να επιτρέπεται στις shebangs σε αρχεία |
|
|
Set the default level of output (0-50). By default, 20. Lower values produce more output. The environment variables are boolean, and may produce additional output during startup that is later suppressed by other configuration. |
|
|
True για να επιβεβαιώσετε ορισμένες ενέργειες πριν τις εκτελέσετε (όπως η απεγκατάσταση), ή false για να παραλείψετε την επιβεβαίωση. Κατά προεπιλογή, true. |
|
|
Αντικαταστήστε την πηγή του δείκτη για να αποκτήσετε νέες εγκαταστάσεις. |
|
|
Καθορίστε την προεπιλεγμένη μορφή που χρησιμοποιείται από την εντολή |
|
(none) |
Specify the root directory that runtimes will be installed into. If you change this setting, previously installed runtimes will not be usable unless you move them to the new location. |
|
(none) |
Specify the directory where global commands (such as |
|
(none) |
Specify the directory where downloaded files are stored. This directory is a temporary cache, and can be cleaned up from time to time. |
Τα ονόματα με τελείες θα πρέπει να είναι εμφωλευμένα μέσα σε αντικείμενα JSON, για παράδειγμα, list.format θα καθοριζόταν ως {"list": {"format": "table"}}.
4.1.9. Γραμμές Shebang¶
Εάν η πρώτη γραμμή ενός αρχείου σεναρίου ξεκινά με #!, είναι γνωστή ως γραμμή «shebang». Τα Linux και άλλα λειτουργικά συστήματα παρόμοια με το Unix έχουν ενσωματωμένη υποστήριξη για τέτοιες γραμμές και χρησιμοποιούνται συνήθως σε τέτοια συστήματα για να υποδείξουν πώς πρέπει να εκτελεστεί ένα script. Οι εντολές python και py επιτρέπουν την ίδια δυνατότητα να χρησιμοποιηθεί με scripts Python στα Windows.
Για να επιτρέψετε στις γραμμές shebang σε σενάρια Python να είναι φορητές μεταξύ Unix και Windows, υποστηρίζονται αρκετές “εικονικές” εντολές για να καθορίσετε ποιο διερμηνέα να χρησιμοποιήσετε. Οι υποστηριζόμενες εικονικές εντολές είναι:
/usr/bin/env <ALIAS>/usr/bin/env -S <ALIAS>/usr/bin/<ALIAS>/usr/local/bin/<ALIAS><ALIAS>
Για παράδειγμα, εάν η πρώτη γραμμή του script σας ξεκινά με
#! /usr/bin/python
Η προεπιλεγμένη Python ή ένα ενεργό εικονικό περιβάλλον θα εντοπιστεί και θα χρησιμοποιηθεί. Καθώς πολλά Python scripts που έχουν γραφεί για να λειτουργούν σε Unix θα έχουν ήδη αυτή τη γραμμή, θα διαπιστώσετε ότι αυτά τα σενάρια μπορούν να χρησιμοποιηθούν από τον εκκινητή χωρίς τροποποίηση. Εάν γράφετε ένα νέο σενάριο στα Windows που ελπίζετε να είναι χρήσιμο σε Unix, θα πρέπει να χρησιμοποιήσετε μία από τις γραμμές shebang που ξεκινούν με /usr.
Οποιαδήποτε από τις παραπάνω εικονικές εντολές μπορούν να έχουν το <ALIAS> αντικατασταθεί από ένα ψευδώνυμο από μια εγκατεστημένη runtime. Δηλαδή, οποιαδήποτε εντολή που δημιουργείται στον παγκόσμιο κατάλογο ψευδωνύμων (τον οποίο μπορεί να έχετε προσθέσει στη μεταβλητή περιβάλλοντος PATH) μπορεί να χρησιμοποιηθεί σε ένα shebang, ακόμη και αν δεν είναι στο PATH. Αυτό επιτρέπει τη χρήση shebangs όπως /usr/bin/python3.12 για να επιλέξετε μια συγκεκριμένη runtime.
Εάν δεν υπάρχουν εγκατεστημένοι χρόνοι εκτέλεσης, ή εάν η αυτόματη εγκατάσταση είναι ενεργοποιημένη, ο ζητούμενος χρόνος εκτέλεσης θα εγκατασταθεί εάν είναι απαραίτητο. Δείτε Διαμόρφωση για πληροφορίες σχετικά με τις ρυθμίσεις διαμόρφωσης.
Η μορφή shebang γραμμής /usr/bin/env θα αναζητήσει επίσης τη μεταβλητή περιβάλλοντος PATH για μη αναγνωρισμένες εντολές. Αυτό αντιστοιχεί στη συμπεριφορά του προγράμματος Unix env, το οποίο εκτελεί την ίδια αναζήτηση, αλλά προτιμά την εκκίνηση γνωστών εντολών Python. Μπορεί να εμφανιστεί μια προειδοποίηση κατά την αναζήτηση για αυθαίρετα εκτελέσιμα αρχεία, και αυτή η αναζήτηση μπορεί να απενεργοποιηθεί από την επιλογή διαμόρφωσης shebang_can_run_anything.
Οι γραμμές shebang που δεν ταιριάζουν με κανένα από τα πρότυπα αντιμετωπίζονται ως Windows διαδρομές εκτελέσιμων αρχείων που είναι απόλυτες ή σχετικές προς τον κατάλογο που περιέχει το αρχείο σεναρίου. Αυτό είναι μια ευκολία για σενάρια μόνο για Windows, όπως αυτά που δημιουργούνται από έναν εγκαταστάτη, καθώς η συμπεριφορά δεν είναι συμβατή με κελύφη τύπου Unix. Αυτές οι διαδρομές μπορεί να είναι σε εισαγωγικά, και μπορεί να περιλαμβάνουν πολλαπλά ορίσματα, μετά τα οποία θα προστεθεί η διαδρομή προς το σενάριο και τυχόν πρόσθετα ορίσματα. Αυτή η λειτουργικότητα μπορεί να απενεργοποιηθεί από την επιλογή διαμόρφωσης shebang_can_run_anything.
Σημείωση
The behaviour of shebangs in the Python install manager is subtly different
from the previous py.exe launcher, and the old configuration options no
longer apply. If you are specifically reliant on the old behaviour or
configuration, we recommend installing the legacy launcher. The legacy
launcher’s py command will override PyManager’s one by default, and you
will need to use pymanager commands for installing and uninstalling.
4.1.10. Advanced installation¶
Για καταστάσεις όπου ένα MSIX δεν μπορεί να εγκατασταθεί, όπως ορισμένες παλαιότερες πλατφόρμες διανομής για διαχειριστές, υπάρχει ένα MSI διαθέσιμο από τη σελίδα λήψεων του python.org. Αυτό το MSI δεν έχει διεπαφή χρήστη, και μπορεί μόνο να πραγματοποιήσει εγκαταστάσεις ανά μηχάνημα στην προεπιλεγμένη τοποθεσία στα Program Files. Θα προσπαθήσει να τροποποιήσει τη συστημική μεταβλητή PATH για να συμπεριλάβει αυτή την τοποθεσία εγκατάστασης, αλλά βεβαιωθείτε ότι το επαληθεύετε στη διαμόρφωσή σας.
Σημείωση
Τα Windows Server 2019 είναι η μόνη έκδοση των Windows που υποστηρίζει η CPython και δεν υποστηρίζει MSIX. Για τα Windows Server 2019, θα πρέπει να χρησιμοποιήσετε το MSI.
Να γνωρίζετε ότι το πακέτο MSI δεν περιλαμβάνει κανέναν χρόνο εκτέλεσης, και έτσι δεν είναι κατάλληλο για εγκαταστάσεις σε περιβάλλοντα χωρίς σύνδεση στο διαδίκτυο χωρίς επίσης τη δημιουργία ενός ευρετηρίου εγκατάστασης χωρίς σύνδεση. Δείτε Offline installs και Administrative configuration για πληροφορίες σχετικά με τη διαχείριση αυτών των σεναρίων.
Οι χρόνοι εκτέλεσης που εγκαθίστανται από το MSI κοινοποιούνται με αυτούς που εγκαθίστανται από το MSIX, και είναι όλοι μόνο ανά χρήστη. Ο διαχειριστής εγκατάστασης Python δεν υποστηρίζει την εγκατάσταση χρόνων εκτέλεσης ανά μηχάνημα. Για να μιμηθείτε μια εγκατάσταση ανά μηχάνημα, μπορείτε να χρησιμοποιήσετε το py install --target=<shared location> ως διαχειριστής και να προσθέσετε τις δικές σας τροποποιήσεις σε PATH, το μητρώο, ή το μενού Έναρξης.
Όταν το MSIX είναι εγκατεστημένο, αλλά οι εντολές δεν είναι διαθέσιμες στη PATH μεταβλητή περιβάλλοντος, μπορούν να βρεθούν στο %LocalAppData%\Microsoft\WindowsApps\PythonSoftwareFoundation.PythonManager_3847v3x7pw1km ή %LocalAppData%\Microsoft\WindowsApps\PythonSoftwareFoundation.PythonManager_qbz5n2kfra8p0, ανάλογα με το αν εγκαταστάθηκε από το python.org ή μέσω του Windows Store. Η προσπάθεια εκτέλεσης του εκτελέσιμου απευθείας από τα Program Files δεν συνιστάται.
Για να εγκαταστήσετε προγραμματιστικά τον διαχειριστή εγκατάστασης Python, είναι πιο εύκολο να χρησιμοποιήσετε το WinGet, το οποίο περιλαμβάνεται σε όλες τις υποστηριζόμενες εκδόσεις των Windows:
$> winget install 9NQ7512CXL7T -e --accept-package-agreements --disable-interactivity
# Optionally run the configuration checker and accept all changes
$> py install --configure -y
Για να κατεβάσετε τον διαχειριστή εγκατάστασης Python και να τον εγκαταστήσετε σε άλλο μηχάνημα, η ακόλουθη εντολή WinGet θα κατεβάσει τα απαιτούμενα αρχεία από το Store στον κατάλογο Λήψεις σας (προσθέστε -d <location> για να προσαρμόσετε την τοποθεσία εξόδου). Αυτό επίσης δημιουργεί ένα αρχείο YAML που φαίνεται να είναι περιττό, καθώς το κατεβασμένο MSIX μπορεί να εγκατασταθεί με την εκκίνηση ή τη χρήση των παρακάτω εντολών.
$> winget download 9NQ7512CXL7T -e --skip-license --accept-package-agreements --accept-source-agreements
Για να εγκαταστήσετε ή να απεγκαταστήσετε προγραμματιστικά ένα MSIX χρησιμοποιώντας μόνο το PowerShell, συνιστώνται τα PowerShell cmdlets Add-AppxPackage και Remove-AppxPackage:
$> Add-AppxPackage C:\Downloads\python-manager-25.0.msix
...
$> Get-AppxPackage PythonSoftwareFoundation.PythonManager | Remove-AppxPackage
Η τελευταία έκδοση μπορεί να ληφθεί και να εγκατασταθεί από τα Windows με τη μετάδοση του αρχείου AppInstaller στην εντολή Add-AppxPackage. Αυτό εγκαθιστά χρησιμοποιώντας το MSIX στο python.org, και συνιστάται μόνο για περιπτώσεις όπου η εγκατάσταση μέσω του Store (διαδραστικά ή χρησιμοποιώντας το WinGet) δεν είναι δυνατή.
$> Add-AppxPackage -AppInstallerFile https://www.python.org/ftp/python/pymanager/pymanager.appinstaller
Άλλα εργαλεία και API μπορούν επίσης να χρησιμοποιηθούν για την παροχή ενός πακέτου MSIX για όλους τους χρήστες σε μια μηχανή, αλλά η Python δεν θεωρεί αυτό ένα υποστηριζόμενο σενάριο. Προτείνουμε να εξετάσετε το PowerShell Add-AppxProvisionedPackage cmdlet, την εγγενή κλάση Windows PackageManager, ή την τεκμηρίωση και υποστήριξη για το εργαλείο ανάπτυξής σας.
Ανεξάρτητα από τη μέθοδο εγκατάστασης, οι χρήστες θα πρέπει να εγκαταστήσουν τις δικές τους αντίγραφα της Python, καθώς δεν υπάρχει τρόπος να ενεργοποιηθούν αυτές οι εγκαταστάσεις χωρίς να είναι συνδεδεμένος χρήστης. Όταν χρησιμοποιείτε το MSIX, η τελευταία έκδοση της Python θα είναι διαθέσιμη για όλους τους χρήστες για εγκατάσταση χωρίς πρόσβαση στο δίκτυο.
Σημειώστε ότι το MSIX που μπορεί να ληφθεί από το Store και από τον ιστότοπο της Python είναι ελαφρώς διαφορετικό και δεν μπορούν να εγκατασταθούν ταυτόχρονα. Όπου είναι δυνατόν, προτείνουμε τη χρήση των παραπάνω εντολών WinGet για τη λήψη του πακέτου από το Store για να μειωθεί ο κίνδυνος ρύθμισης συγκρουόμενων εγκαταστάσεων. Δεν υπάρχουν περιορισμοί αδειοδότησης στον διαχειριστή εγκατάστασης Python που να εμποδίζουν τη χρήση του πακέτου Store με αυτόν τον τρόπο.
4.1.11. Administrative configuration¶
Υπάρχουν πολλές επιλογές που μπορεί να είναι χρήσιμες για τους διαχειριστές για να υπερκαλύψουν τη διαμόρφωση του διαχειριστή εγκατάστασης Python. Αυτές μπορούν να χρησιμοποιηθούν για την παροχή τοπικής προσωρινής αποθήκευσης, την απενεργοποίηση ορισμένων τύπων συντομεύσεων, την υπερκάλυψη ενσωματωμένου περιεχομένου. Όλες οι παραπάνω επιλογές διαμόρφωσης μπορούν να οριστούν, καθώς και αυτές παρακάτω.
Οι επιλογές διαμόρφωσης μπορούν να υπερκαλυφθούν στο μητρώο ρυθμίζοντας τιμές κάτω από HKEY_LOCAL_MACHINE\Software\Policies\Python\PyManager, όπου το όνομα της τιμής ταιριάζει με το κλειδί διαμόρφωσης και ο τύπος τιμής είναι REG_SZ. Σημειώστε ότι αυτό το κλειδί μπορεί να προσαρμοστεί, αλλά μόνο τροποποιώντας το βασικό αρχείο διαμόρφωσης που διανέμεται με τον διαχειριστή εγκατάστασης Python. Ωστόσο, συνιστούμε, ωστόσο, ότι οι τιμές μητρώου χρησιμοποιούνται μόνο για να ορίσουν base_config σε ένα αρχείο JSON που περιέχει το πλήρες σύνολο των υπερκαλύψεων. Οι υπερκαλύψεις κλειδιών μητρώου θα αντικαταστήσουν οποιαδήποτε άλλη ρυθμισμένη ρύθμιση, ενώ base_config επιτρέπει στους χρήστες να τροποποιούν περαιτέρω ρυθμίσεις που μπορεί να χρειαστούν.
Σημειώστε ότι οι περισσότερες ρυθμίσεις με μεταβλητές περιβάλλοντος υποστηρίζουν αυτές τις μεταβλητές επειδή η προεπιλεγμένη ρύθμισή τους καθορίζει τη μεταβλητή. Εάν τις υπερκαλύψετε, η μεταβλητή περιβάλλοντος δεν θα λειτουργεί πλέον, εκτός εάν την υπερκαλύψετε με άλλη. Για παράδειγμα, η προεπιλεγμένη τιμή του confirm είναι κυριολεκτικά %PYTHON_MANAGER_CONFIRM%, η οποία θα επιλύσει τη μεταβλητή κατά το χρόνο φόρτωσης. Εάν υπερκαλύψετε την τιμή σε yes, τότε η μεταβλητή περιβάλλοντος δεν θα χρησιμοποιείται πλέον. Εάν υπερκαλύψετε την τιμή σε %CONFIRM%, τότε θα χρησιμοποιηθεί αυτή η μεταβλητή περιβάλλοντος.
Οι ρυθμίσεις διαμόρφωσης που είναι διαδρομές ερμηνεύονται ως σχετικές με τον κατάλογο που περιέχει το αρχείο διαμόρφωσης που τις καθόρισε.
Διαχειριστικές επιλογές διαμόρφωσης
Κλειδί Διαμόρφωσης |
Περιγραφή |
|---|---|
|
Το αρχείο διαμόρφωσης με την υψηλότερη προτεραιότητα για ανάγνωση. Σημειώστε ότι μόνο το ενσωματωμένο αρχείο διαμόρφωσης και το μητρώο μπορούν να τροποποιήσουν αυτήν τη ρύθμιση. |
|
Το δεύτερο αρχείο διαμόρφωσης για ανάγνωση. |
|
Το τρίτο αρχείο διαμόρφωσης για ανάγνωση. |
|
Τοποθεσία μητρώου για έλεγχο για υπερκαλύψεις. Σημειώστε ότι μόνο το ενσωματωμένο αρχείο διαμόρφωσης μπορεί να τροποποιήσει αυτήν τη ρύθμιση. |
|
Κατάλογος μόνο για ανάγνωση που περιέχει τοπικά αποθηκευμένα αρχεία. |
|
Διαδρομή ή URL σε έναν ευρετήριο για συμβουλή όταν δεν είναι δυνατή η πρόσβαση στον κύριο ευρετήριο. |
|
Λίστα με κόμμα διαχωρισμένων ειδών συντομεύσεων για να επιτρέπονται (π.χ. |
|
Λίστα με κόμμα διαχωρισμένων ειδών συντομεύσεων για να εξαιρούνται (π.χ. |
|
Τοποθεσία μητρώου για ανάγνωση και εγγραφή καταχωρήσεων PEP 514. Από προεπιλογή, |
|
Φάκελος μενού Έναρξης για εγγραφή συντομεύσεων. Από προεπιλογή, |
|
Διαδρομή προς το ενεργό εικονικό περιβάλλον. Από προεπιλογή, αυτό είναι |
|
True για να καταστείλει ορατές προειδοποιήσεις όταν ένα shebang εκκινεί μια εφαρμογή εκτός από μια εκτελέσιμη Python. |
4.1.12. Installing free-threaded binaries¶
Added in version 3.13.
Pre-built distributions of the free-threaded build are available
by installing tags with the t suffix.
$> py install 3.14t
$> py install 3.14t-arm64
$> py install 3.14t-32
Αυτό θα εγκαταστήσει και θα καταχωρήσει ως κανονικό. Εάν δεν έχετε άλλες εκτελέσιμες εγκαταστάσεις, τότε το python θα εκκινήσει αυτήν. Αλλιώς, θα χρειαστεί να χρησιμοποιήσετε το py -V:3.14t ... ή, εάν έχετε προσθέσει τον παγκόσμιο κατάλογο ψευδωνύμων στη μεταβλητή περιβάλλοντος PATH, τις εντολές python3.14t.exe.
4.1.13. Αντιμετώπιση προβλημάτων¶
Εάν ο διαχειριστής εγκατάστασης Python δεν φαίνεται να λειτουργεί σωστά, παρακαλούμε να εργαστείτε μέσα από αυτές τις δοκιμές και διορθώσεις για να δείτε αν βοηθάει. Εάν όχι, παρακαλούμε αναφέρετε ένα ζήτημα στο our bug tracker, συμπεριλαμβάνοντας οποιαδήποτε σχετικά αρχεία καταγραφής (γραμμένα στον φάκελο %TEMP% από προεπιλογή).
Αντιμετώπιση προβλημάτων
Σύμπτωμα |
Πράγματα που μπορείτε να δοκιμάσετε |
|---|---|
το |
Εγκαταστήσατε το install the Python install manager |
Κάντε κλικ στο Έναρξη, ανοίξτε το «Διαχείριση εκτέλεσης εφαρμογών» και ελέγξτε ότι τα aliases για το «Python (default)» είναι ενεργοποιημένα. Εάν ήδη είναι, δοκιμάστε να τα απενεργοποιήσετε και να τα ενεργοποιήσετε ξανά για να ανανεώσετε την εντολή. Οι εντολές «Python (default windowed)» και «Python install manager» ενδέχεται επίσης να χρειάζονται ανανέωση. |
|
Ελέγξτε ότι οι εντολές |
|
|
Εγκαταστήσατε το install the Python install manager |
Κάντε κλικ στο Έναρξη, ανοίξτε το «Διαχείριση εκτέλεσης εφαρμογών» και ελέγξτε ότι τα aliases για το «Python (default)» είναι ενεργοποιημένα. Εάν ήδη είναι, δοκιμάστε να τα απενεργοποιήσετε και να τα ενεργοποιήσετε ξανά για να ανανεώσετε την εντολή. Οι εντολές «Python (default windowed)» και «Python install manager» ενδέχεται επίσης να χρειάζονται ανανέωση. |
|
το |
Αυτό συνήθως σημαίνει ότι έχετε εγκαταστήσει τον παλιό launcher και έχει προτεραιότητα έναντι του διαχειριστή εγκατάστασης Python. Για να το αφαιρέσετε, κάντε κλικ στο Έναρξη, ανοίξτε το «Εγκατεστημένες εφαρμογές», αναζητήστε το «Python launcher» και απεγκαταστήστε το. |
η |
Κάντε κλικ στο Έναρξη, ανοίξτε το «Εγκατεστημένες εφαρμογές», αναζητήστε τους υπάρχοντες Python runtimes και είτε αφαιρέστε τους είτε τροποποιήστε και απενεργοποιήστε τις επιλογές |
Κάντε κλικ στο Έναρξη, ανοίξτε το «Διαχείριση εκτέλεσης εφαρμογών» και ελέγξτε ότι το alias |
|
|
Check your |
Εγκαταστάσεις που διαχειρίζονται από τον διαχειριστή εγκατάστασης Python θα επιλεγούν πριν από τις μη διαχειριζόμενες εγκαταστάσεις. Χρησιμοποιήστε το |
|
Προεκδόσεις και πειραματικές εγκαταστάσεις που δεν διαχειρίζονται από τον διαχειριστή εγκατάστασης Python ενδέχεται να επιλεγούν πριν από τις σταθερές εκδόσεις. Διαμορφώστε την προεπιλεγμένη ετικέτα σας ή απεγκαταστήστε το runtime προέκδοσης και επανεγκαταστήστε το χρησιμοποιώντας το |
|
|
Κάντε κλικ στο Έναρξη, ανοίξτε το «Διαχείριση εκτέλεσης εφαρμογών» και ελέγξτε ότι τα aliases σας |
Το |
Έχετε ενεργοποιήσει ένα εικονικό περιβάλλον; Εκτελέστε το script |
Το πακέτο ενδέχεται να είναι διαθέσιμο αλλά να λείπει το δημιουργημένο εκτελέσιμο. Συνιστούμε τη χρήση της εντολής |
|
Typing |
This is a known limitation of the operating system. Either specify |
Drag-dropping files onto a script doesn’t work |
This is a known limitation of the operating system. It is supported with the legacy launcher, or with the Python install manager when installed from the MSI. |
4.2. Το ενσωματωμένο πακέτο¶
Added in version 3.5.
Η ενσωματωμένη διανομή είναι ένα αρχείο ZIP που περιέχει ένα ελάχιστο περιβάλλον Python. Προορίζεται για δράση ως μέρος μιας άλλης εφαρμογής, αντί να έχει άμεση πρόσβαση από τους τελικούς χρήστες.
Για να εγκαταστήσετε μια ενσωματωμένη διανομή, προτείνουμε τη χρήση του py install με την επιλογή --target:
$> py install 3.14-embed --target=runtime
Όταν εξάγεται, η ενσωματωμένη διανομή απομονώνεται (σχεδόν) πλήρως από το σύστημα του χρήστη, συμπεριλαμβανομένων μεταβλητών περιβάλλοντος, ρυθμίσεων μητρώου συστήματος και εγκατεστημένων πακέτων. Η τυπική βιβλιοθήκη περιλαμβάνεται ως προ-μεταγλωττισμένα και βελτιστοποιημένα αρχεία .pyc σε ένα ZIP και python3.dll, python313.dll, python.exe και pythonw.exe παρέχονται όλα. Το Tcl/tk (συμπεριλαμβανομένων όλων των εξαρτημένων, όπως το Idle), το pip και η τεκμηρίωση Python δεν συμπεριλαμβάνονται.
Ένα προεπιλεγμένο αρχείο ._pth περιλαμβάνεται, το οποίο περιορίζει περαιτέρω τις προεπιλεγμένες διαδρομές αναζήτησης (όπως περιγράφεται παρακάτω στο Εύρεση modules). Αυτό το αρχείο προορίζεται για τροποποίηση από ενσωματωτές όπως είναι απαραίτητο.
Τα πακέτα τρίτων θα πρέπει να εγκατασταθούν από το πρόγραμμα εγκατάστασης της εφαρμογής παράλληλα με την ενσωματωμένη διανομή. Η χρήση pip για τη διαχείριση εξαρτήσεων όπως για μια κανονική εγκατάσταση Python δεν υποστηρίζεται με αυτήν τη διανομή, αν και με λίγη προσοχή μπορεί να είναι δυνατό, να συμπεριληφθεί και να χρησιμοποιηθεί το pip για αυτόματες ενημερώσεις. Γενικά, τα πακέτα τρίτων θα πρέπει να αντιμετωπίζονται ως μέρος της εφαρμογής («vendoring»), έτσι ώστε ο προγραμματιστής να μπορεί να διασφαλίσει τη συμβατότητα με νεότερες εκδόσεις προτού παρέχει ενημερώσεις στους χρήστες.
Οι δύο προτεινόμενες περιπτώσεις χρήσης για αυτήν τη διανομή περιγράφονται παρακάτω.
4.2.1. Python application¶
Μια εφαρμογή γραμμένη σε Python δεν απαιτεί απαραίτητα από τους χρήστες να γνωρίζουν αυτό το γεγονός. Η ενσωματωμένη διανομή μπορεί να χρησιμοποιηθεί σε αυτήν την περίπτωση για να συμπεριλάβει μια ιδιωτική έκδοση της Python σε ένα πακέτο εγκατάστασης. Ανάλογα με το πόσο διαφανές θα πρέπει να είναι (ή αντίστροφα, πόσο επαγγελματικό θα έπρεπε να φαίνεται), υπάρχουν δύο επιλογές.
Η χρήση ενός εξειδικευμένου εκτελέσιμου ως προγράμματος εκκίνησης απαιτεί κάποια κωδικοποίηση, αλλά παρέχει την πιο διαφανής εμπειρία για τους χρήστες. Με έναν προσαρμοσμένο πρόγραμμα εκκίνησης, δεν υπάρχουν προφανείς ενδείξεις ότι το πρόγραμμα εκτελείται σε Python: τα εικονίδια μπορούν να προσαρμοστούν, οι πληροφορίες εταιρείας και έκδοσης μπορούν να καθορίζεται και οι συσχετισμοί αρχείων συμπεριφέρονται σωστά. Στις περισσότερες περιπτώσεις, ένα προσαρμοσμένο πρόγραμμα εκκίνησης θα πρέπει απλώς να μην μπορεί να καλεί το Py_Main με μια σκληρά κωδικοποιημένη γραμμή εντολών.
Η απλούστερη προσέγγιση είναι να παρέχετε ένα αρχείο δέσμης ή μια συντόμευση που δημιουργείται που καλεί απευθείας το python.exe ή το pythonw.exe με τα απαιτούμενα ορίσματα γραμμής εντολών. Σε αυτήν την περίπτωση, η εφαρμογή φαίνεται να είναι Python και όχι το πραγματικό της όνομα, και οι χρήστες μπορεί να έχουν πρόβλημα να το ξεχωρίσουν από άλλες διεργασίες Python που εκτελούνται ή συσχετίσεις αρχείων.
Με την τελευταία προσέγγιση, τα πακέτα θα πρέπει να εγκατασταθούν ως κατάλογοι μαζί με το εκτελέσιμο Python για να διασφαλιστεί ότι είναι διαθέσιμα στην διαδρομή. Με το εξειδικευμένο πρόγραμμα εκκίνησης τα πακέτα μπορούν να βρίσκονται σε άλλες τοποθεσίες, καθώς υπάρχει η ευκαιρία να καθοριστεί η διαδρομή αναζήτησης πριν από την εκκίνηση της εφαρμογής.
4.2.2. Ενσωμάτωση Python¶
Οι εφαρμογές που είναι γραμμένες σε εγγενή κώδικα απαιτούν συχνά κάποια μορφή scripting γλώσσας και η ενσωματωμένη διανομή Python μπορεί να χρησιμοποιηθεί για αυτόν τον σκοπό. Γενικά, η πλειονότητα της εφαρμογής είναι σε εγγενή κώδικα και κάποιο μέρος είτε θα καλέσει το python.exe ή θα χρησιμοποιήσει απευθείας το python3.dll. Και στις δύο περιπτώσεις, η εξαγωγή της ενσωματωμένης διανομής σε έναν υποκατάλογο της εγκατάστασης της εφαρμογής αρκεί για να παρέχει έναν διερμηνέα Python με δυνατότητα φόρτωσης.
Όπως και με τη χρήση της εφαρμογής, τα πακέτα μπορούν να εγκατασταθούν σε οποιαδήποτε τοποθεσία, καθώς υπάρχει η ευκαιρία να καθορίσουν διαδρομές αναζήτησης πριν αρχικοποιηθεί ο διερμηνέας. Διαφορετικά , δεν υπάρχουν θεμελιώδεις διαφορές μεταξύ της χρήσης της ενσωματωμένης διανομή και μιας κανονικής εγκατάστασης.
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 <https://www.nuget.org/packages/x86>`_ για την έκδοση 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. Εναλλακτικά πακέτα¶
Εκτός από την τυπική διανομή CPython, υπάρχουν τροποποιημένα πακέτα που περιλαμβάνουν πρόσθετες λειτουργίες. Ακολουθεί μια λίστα με δημοφιλείς εκδόσεις και τα βασικά χαρακτηριστικά τους:
- ActivePython
Πρόγραμμα εγκατάστασης με συμβατότητα πολλαπλών πλατφορμών, τεκμηρίωση, PyWin32
- Anaconda
Δημοφιλείς επιστημονικά modules (όπως το numpy, scipy και pandas) και ο διαχειριστής πακέτων
conda.- Enthought Deployment Manager
«Η επόμενη γενικά Διαχειριστή Περιβάλλοντος και Πακέτων Python».
Προηγουμένως, η Enthought παρείχε το Canopy, αλλά έφτασε στο τέλος της ζωής του το 2016 <https://support.enthought.com/hc/en-us/articles/360038600051-Canopy-GUI-end-of-life-transition-to-the-Enthought-Deployment-Manager-EDM-and-Visual-Studio-Code>`_.
- WinPython
Διανομή ειδικά για Windows με προκατασκευασμένα επιστημονικά πακέτα και εργαλεία για την κατασκευή πακέτων.
Λάβετε υπόψη ότι αυτά τα πακέτα ενδέχεται να μην περιλαμβάνουν τις πιο πρόσφατες εκδόσεις της Python ή άλλες βιβλιοθήκες και δεν διατηρούνται ή υποστηρίζονται από την βασική ομάδα της Python.
4.5. Υποστηριζόμενες εκδόσεις των Windows¶
Όπως ορίζεται στο PEP 11, μια έκδοση Python υποστηρίζει μόνο μια πλατφόρμα Windows, ενώ η Microsoft θεωρεί την πλατφόρμα υπό εκτεταμένη υποστήριξη. Αυτό σημαίνει ότι η Python 3.14 υποστηρίζει Windows 8.1 και νεότερες εκδόσεις. Εάν χρειάζεστε υποστήριξη Windows 7, εγκαταστήστε την Python 3.8. Εάν χρειάζεστε υποστήριξη Windows 8.1, εγκαταστήστε την Python 3.12.
4.6. Removing the MAX_PATH limitation¶
Τα Windows έχουν ιστορικά περιορισμένα μήκη διαδρομής στους 260 χαρακτήρες. Αυτό σήμαινε ότι διαδρομές μεγαλύτερες από αυτό δεν θα επιλύονταν και θα προέκυπταν σφάλματα.
Στις πιο πρόσφατες εκδόσεις των Windows, αυτός ο περιορισμός μπορεί να επεκταθεί σε πάνω από 32.000 χαρακτήρες. Ο διαχειριστής σας θα πρέπει να ενεργοποιήσει την πολιτική ομάδας «Ενεργοποίηση μακρών διαδρομών Win32» ή να ορίσει το LongPathsEnabled σε 1 στο κλειδί μητρώου HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem.
Αυτό επιτρέπει στη συνάρτηση open(), στο module os και στις περισσότερες άλλες λειτουργίες διαδρομής να αποδέχονται και να επιστρέφουν διαδρομές μεγαλύτερες από 260 χαρακτήρες.
Μετά την αλλαγή της παραπάνω επιλογής, δεν απαιτείται περαιτέρω διαμόρφωση.
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 και Python install manager για τον τρόπο τροποποίηση μεταβλητών περιβάλλοντος.
Όταν η 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. Εύρεση 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.9. Πρόσθετα modules¶
Αν και η Python στοχεύει να είναι φορητή σε όλες τις πλατφόρμες, υπάρχουν δυνατότητες που είναι μοναδικές για τα Windows. Μερικά modules, τόσο στην τυπική βιβλιοθήκη όσο και στην εξωτερική, και αποσπάσματα υπάρχουν για χρήση αυτών των δυνατοτήτων.
Τα τυπικά modules ειδικά για Windows τεκμηριώνονται στο MS Windows Specific Services.
4.9.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.9.2. cx_Freeze¶
Το cx_Freeze <https://cx-freeze.readthedocs.io/en/latest/>`_ αναδιπλώνει Python scripts σε εκτελέσιμα προγράμματα των Windows (*.exe αρχεία). Όταν το κάνετε αυτό, μπορείτε να διανείμετε την εφαρμογή σας χωρίς να απαιτείται από τους χρήστες σας να εγκαταστήσουν την Python.
4.10. Μεταγλώττιση Python στα Windows¶
Εάν θέλετε να μεταγλωττίσετε μόνοι σας το CPython, το πρώτο πράγμα που πρέπει να κάνετε είναι να λάβετε το source. Μπορείτε να κάνετε λήψη είτε τον πηγαίο κώδικα της πιο πρόσφατης έκδοσης είτε απλώς να πάρετε μια φρέσκια έκδοση checkout.
Το δέντρο προέλευσης περιέχει μια λύση έκδοσης και αρχεία έργου για το Microsoft Visual Studio, που είναι ο μεταγλωττιστής που χρησιμοποιείται για τη δημιουργία των επίσημων εκδόσεων Python. Αυτά τα αρχεία βρίσκονται στον κατάλογο PCbuild.
Ελέγξτε το PCbuild/readme.txt για γενικές πληροφορίες σχετικά με τη διαδικασία κατασκευής.
Για modules επέκτασης, συμβουλευτείτε το Building C and C++ Extensions on Windows.
4.11. Το πλήρες πρόγραμμα εγκατάστασης¶
Αποσύρθηκε στην έκδοση 3.14: Αυτό το πρόγραμμα εγκατάστασης έχει αποσυρθεί από την έκδοση 3.14 και δεν θα παραχθεί για την Python 3.16 ή νεότερη έκδοση. Δείτε το Python install manager για το σύγχρονο πρόγραμμα εγκατάστασης.
4.11.1. Βήματα Εγκατάστασης¶
Τέσσερα προγράμματα εγκατάστασης Python 3.14 είναι διαθέσιμα για λήψη - δύο το καθένα για τις εκδόσεις 32-bit και 64-bit του διερμηνέα. Το πρόγραμμα εγκατάστασης web είναι μια αρχική λήψη και θα πραγματοποιήσει αυτόματα λήψη των απαιτούμενων στοιχείων, όπως απαιτείται. Το πρόγραμμα εγκατάστασης εκτός σύνδεσης περιλαμβάνει τα στοιχεία που είναι απαραίτητα για μια προεπιλεγμένη εγκατάσταση και απαιτεί μόνο σύνδεση στο διαδίκτυο για προαιρετικές λειτουργίες. Δείτε το Installing without downloading για άλλους τρόπους αποφυγής λήψης κατά την εγκατάσταση.
Μετά την εκκίνηση του προγράμματος εγκατάστασης, μπορεί να επιλέγει μία από τις δύο επιλογές:
Εάν επιλέξετε «Install Now»:
Δεν θα χρειάζεται να είστε διαχειριστής (εκτός εάν απαιτείται ενημέρωση συστήματος για τη Βιβλιοθήκη C Runtime ή εγκαταστήσετε το Python install manager για όλους τους χρήστες)
Η Python θα εγκατασταθεί στον κατάλογο του χρήστη σας
Το Python install manager θα εγκατασταθεί σύμφωνα με την επιλογή στο κάτω μέρος της πρώτης σελίδας
Θα εγκατασταθεί η τυπική βιβλιοθήκη, η δοκιμαστική σουίτα, ο εκκινητής και το pip
Εάν επιλεγεί, ο κατάλογος εγκατάστασης θα προστεθεί στο
PATHσαςΟι συντομεύσεις θα είναι ορατές μόνο για τον τρέχοντα χρήστη
Επιλέγοντας «Customize installation» θα σας επιτρέψει να επιλέξετε τις λειτουργίες προς εγκατάσταση, τη θέση εγκατάστασης και άλλες επιλογές ή ενέργειες μετά την εγκατάσταση. Για να εγκαταστήσετε σύμβολα εντοπισμού σφαλμάτων ή δυαδικά αρχεία, θα χρειαστεί να χρησιμοποιήσετε αυτήν την επιλογή.
Για να εκτελέσετε μια εγκατάσταση για όλους τους χρήστες, θα πρέπει να επιλέξετε «Customize installation». Σε αυτήν την περίπτωση:
Ενδέχεται να σας ζητηθεί να παρέχετε διαπιστευτήρια διαχείρισης ή έγκριση
Η Python θα εγκατασταθεί στον κατάλογο Program Files
Το Python install manager θα εγκατασταθεί στον κατάλογο των Windows
Προαιρετικά χαρακτηριστικά μπορούν να επιλεγούν κατά την εγκατάσταση
Η τυπική βιβλιοθήκη μπορεί να προ-μεταγλωττιστεί σε bytecode
Εάν επιλεγεί, ο κατάλογος εγκατάστασης θα προστεθεί στο σύστημα
PATHΟι συντομεύσεις είναι διαθέσιμες για όλους τους χρήστες
4.11.2. Removing the MAX_PATH limitation¶
Τα 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.11.3. Installing without UI¶
Όλες οι διαθέσιμες επιλογές στη διεπαφή χρήστη του προγράμματος εγκατάστασης μπορούν επίσης να καθοριστούν από τη γραμμή εντολών, επιτρέποντας στους εγκαταστάτες με 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 install manager. |
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.11.4. Installing without downloading¶
Καθώς ορισμένες δυνατότητες της Python δεν περιλαμβάνονται στην αρχική λήψη του προγράμματος εγκατάστασης, η επιλογή αυτών των δυνατοτήτων ενδέχεται να απαιτεί σύνδεση στο διαδίκτυο. Για να αποφευχθεί αυτή η ανάγκη, όλα τα πιθανά στοιχεία μπορούν να ληφθούν κατ” απαίτηση για να δημιουργηθεί μια πλήρης διάταξη που δεν θα απαιτεί πλέον μια σύνδεση στο Διαδίκτυο, ανεξάρτητα από τις επιλεγμένες δυνατότητες. Λάβετε υπόψη ότι αυτή η λήψη μπορεί να είναι μεγαλύτερη από την απαιτούμενη, αλλά όπου πρόκειται να πραγματοποιηθεί μεγάλος αριθμός εγκαταστάσεων, είναι πολύ χρήσιμο να έχετε ένα αντίγραφο προσωρινής αποθήκευσης.
Εκτελέστε την ακόλουθη εντολή από τη Γραμμή Εντολών για λήψη όλων των πιθανών απαιτούμενων αρχείων. Θυμηθείτε να αντικαταστήσετε το python-3.9.0.exe για το πραγματικό όνομα του προγράμματος εγκατάστασης και να δημιουργήσετε διατάξεις στους δικούς τους καταλόγους για να αποφύγετε συγκρούσεις μεταξύ αρχείων με το ίδιο όνομα.
python-3.9.0.exe /layout [optional target directory]
Μπορείτε επίσης να καθορίσετε την επιλογή /quiet για απόκρυψη της εμφάνισης προόδου.
4.11.5. Τροποποίηση εγκατάστασης¶
Μόλις εγκατασταθεί η Python, μπορείτε να προσθέσετε ή να αφαιρέσετε λειτουργίες μέσω του εργαλείου Προγράμματα και Δυνατότητες που είναι μέρος των Windows. Επιλέξτε την καταχώρηση Python και επιλέξτε «Κατάργηση εγκατάστασης/Αλλαγή» για να ανοίξετε το πρόγραμμα εγκατάστασης σε λειτουργία συντήρησης.
Η «Αλλαγή» σάς επιτρέπει να προσθέτετε ή να αφαιρείτε λειτουργίες τροποποιώντας τα πλαίσια ελέγχου - τα αμετάβλητα πλαίσια ελέγχου δεν θα εγκαταστήσουν ή θα αφαιρέσουν τίποτα. Ορισμένες επιλογές δεν μπορούν να αλλάξουν σε αυτήν τη λειτουργία, όπως ο κατάλογος εγκατάστασης· για να τις τροποποιήσετε, θα χρειαστεί αν αφαιρέσετε και, στη συνέχεια να επανεγκαταστήσετε ξανά την Python.
Η «Επιδιόρθωση» θα επαληθεύσει όλα τα αρχεία που πρέπει να εγκατασταθούν χρησιμοποιώντας τις τρέχουσες ρυθμίσεις και θα αντικαταστήσει όσα έχουν αφαιρεθεί ή τροποποιηθεί.
Η «Κατάργηση εγκατάστασης» θα καταργήσει πλήρως την Python, με εξαίρεση το Python install manager, το οποίο έχει τη δική του καταχώριση στο Προγράμματα και Δυνατότητες.
4.11.6. Installing free-threaded binaries¶
Added in version 3.13.
Για να εγκαταστήσετε προ-κατασκευασμένα δυαδικά αρχεία με ενεργοποιημένο το free-threading (δείτε το PEP 703), θα πρέπει να επιλέξετε «Προσαρμοσμένη εγκατάσταση». Η δεύτερη σελίδα επιλογών περιλαμβάνει το πλαίσιο επιλογής «Λήψη δυαδικών αρχείων με ελεύθερο νήμα».
Selecting this option will download and install additional binaries to the same
location as the main Python install. The main executable is called
python3.13t.exe, and other binaries either receive a t suffix or a full
ABI suffix. Python source files and bundled third-party dependencies are shared
with the main install.
The free-threaded version is registered as a regular Python install with the
tag 3.13t (with a -32 or -arm64 suffix as normal for those
platforms). This allows tools to discover it, and for the Python install manager to
support py.exe -3.13t. Note that the launcher will interpret py.exe -3
(or a python3 shebang) as «the latest 3.x install», which will prefer the
free-threaded binaries over the regular ones, while py.exe -3.13 will not.
If you use the short style of option, you may prefer to not install the
free-threaded binaries at this time.
To specify the install option at the command line, use
Include_freethreaded=1. See Installing without downloading for instructions on
pre-emptively downloading the additional binaries for offline install. The
options to include debug symbols and binaries also apply to the free-threaded
builds.
Free-threaded binaries are also available on nuget.org.
4.12. Python launcher for Windows (deprecated)¶
Αποσύρθηκε στην έκδοση 3.14: Το πρόγραμμα εκκίνησης και αυτή η τεκμηρίωση έχουν αντικατασταθεί από το Python Install Manager που περιγράφεται παραπάνω. Αυτό διατηρείται προσωρινά για ιστορικό ενδιαφέρον.
Added in version 3.3.
Το πρόγραμμα εκκίνησης Python για Windows είναι ένα βοηθητικό πρόγραμμα που βοηθά στον εντοπισμό και την εκτέλεση διαφορετικών εκδόσεων Python. Επιτρέπει στα scripts (ή στη γραμμή εντολών) να υποδείξουν μια προτίμηση για μια συγκεκριμένη έκδοση Python και θα εντοπίσουν και θα εκτελέσουν αυτήν την έκδοση.
Σε αντίθεση με τη μεταβλητή PATH, το πρόγραμμα εκκίνησης θα επιλέξει σωστά την καταλληλότερη έκδοση της Python. Θα προτιμήσει τις εγκαταστάσεις ανά χρήστη έναντι των εγκαταστάσεων σε όλο το σύστημα και τις παραγγελίες ανά έκδοση γλώσσας αντί να χρησιμοποιεί την πιο πρόσφατα εγκατεστημένη έκδοση.
Το πρόγραμμα εκκίνησης προσδιορίστηκε αρχικά στο PEP 397.
4.12.1. Ξεκινώντας¶
4.12.1.1. Από τη γραμμή εντολών¶
Άλλαξε στην έκδοση 3.6.
Εγκαταστάσεις σε όλο το σύστημα της Python 3.3 και νεότερες εκδόσεις θα τοποθετήσουν το πρόγραμμα εκκίνησης στο PATH. Το πρόγραμμα εκκίνησης είναι συμβατό με όλες τις διαθέσιμες εκδόσεις της Python, επομένως δεν έχει σημασία ποια έκδοση είναι εγκατεστημένη. Για να ελέγξτε ότι το πρόγραμμα εκκίνησης είναι διαθέσιμο, εκτελέστε την ακόλουθη εντολή στη Γραμμή Εντολών:
py
Θα πρέπει να διαπιστώσετε ότι η πιο πρόσφατη έκδοση της Python που έχετε εγκαταστήσει έχει ξεκινήσει - μπορεί να βγει κανονικά και τυχόν πρόσθετα ορίσματα γραμμής εντολών που καθορίστηκαν θα σταλούν απευθείας στην Python.
Εάν έχετε εγκαταστήσει πολλές εκδόσεις της Python (π.χ. 3.7 και 3.14) θα έχετε παρατηρήσει ότι ξεκίνησε η Python 3.14 - για να εκκινήσετε την Python 3.7, δοκιμάστε την εντολή:
py -3.7
Αν θέλετε την πιο πρόσφατη έκδοση της Python 2 που έχετε εγκαταστήσει, δοκιμάστε την εντολή:
py -2
Αν δείτε το ακόλουθο σφάλμα, δεν έχετε εγκαταστήσει τον εκκινητή (launcher):
Το '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.12.1.2. Εικονικά Περιβάλλοντα¶
Added in version 3.5.
Εάν το πρόγραμμα εγκατάστασης εκτελείται χωρίς ρητές προδιαγραφές έκδοσης Python και ένα εικονικό περιβάλλον (δημιουργημένο με το τυπικό module βιβλιοθήκης venv ή το εξωτερικό εργαλείο virtualenv) ενεργό, το πρόγραμμα εκκίνησης θα εκτελέσει τον διερμηνέα του εικονικού περιβάλλοντος αντί για το καθολικό. Για να εκτελέσετε τον καθολικό διερμηνέα, είτε απενεργοποιήστε το εικονικό περιβάλλον είτε καθορίστε ρητά την καθολική έκδοση Python.
4.12.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.12.1.4. Από συσχετίσεις αρχείων¶
Το πρόγραμμα εκκίνησης θα έπρεπε να είχε συσχετιστεί με αρχεία Python (δηλαδή αρχεία .py, .pyw, .pyc) όταν εγκαταστάθηκε. Αυτό σημαίνει ότι όταν κάνετε διπλό κλικ σε ένα από αυτά τα αρχεία από τον Windows Explorer, το πρόγραμμα εκκίνησης θα χρησιμοποιηθεί και επομένως μπορείτε να χρησιμοποιήσετε τις ίδιες ευκολίες που περιγράφονται παραπάνω για να έχετε το script να καθορίζει ποια έκδοση θα χρησιμοποιηθεί.
Το βασικό πλεονέκτημα αυτού είναι ότι ένας μεμονωμένο πρόγραμμα εκκίνησης μπορεί να υποστηρίξει πολλές εκδόσεις Python ταυτόχρονα, ανάλογα με τα περιεχόμενα της πρώτης γραμμής.
4.12.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 θα έχουν ήδη αυτή τη γραμμή, θα διαπιστώσετε ότι αυτά τα σενάρια μπορούν να χρησιμοποιηθούν από τον εκκινητή χωρίς τροποποίηση. Εάν γράφετε ένα νέο σενάριο στα Windows που ελπίζετε να είναι χρήσιμο σε Unix, θα πρέπει να χρησιμοποιήσετε μία από τις γραμμές shebang που ξεκινούν με /usr.
Οποιαδήποτε από τις παραπάνω εικονικές εντολές μπορεί να προστεθεί με μια ρητή έκδοση (είτε μόνο η κύρια έκδοση, είτε η κύρια και δευτερεύουσα έκδοση). Επιπλέον, η έκδοση 32-bit μπορεί να ζητηθεί προσθέτοντας «-32» μετά τη δευτερεύουσα έκδοση. Δηλαδή /usr/bin/python3.7-32 θα ζητήσει τη χρήση της 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 δεν υπάρχει στο ενεργό περιβάλλον.
The /usr/bin/env form of shebang line has one further special property.
Before looking for installed Python interpreters, this form will search the
executable PATH for a Python executable matching the name provided
as the first argument. This corresponds to the behaviour of the Unix env
program, which performs a PATH search.
If an executable matching the first argument after the env command cannot
be found, but the argument starts with python, it will be handled as
described for the other virtual commands.
The environment variable PYLAUNCHER_NO_SEARCH_PATH may be set
(to any value) to skip this search of PATH.
Οι γραμμές Shebang που δεν ταιριάζουν με κανένα από αυτά τα μοτίβα αναζητούνται στην ενότητα [commands] του προγράμματος εκκίνησης .INI file. Αυτό μπορεί να χρησιμοποιηθεί για τον χειρισμό ορισμένων εντολών με τρόπο που να έχει νόημα για το σύστημά σας. Το όνομα της εντολής πρέπει να είναι ένα μεμονωμένο όρισμα (δεν υπάρχουν κενά στο εκτελέσιμο αρχείο shebang) και η τιμή που αντικαθίσταται είναι η πλήρης διαδρομή προς το εκτελέσιμο (τα πρόσθετα ορίσματα που καθορίζονται στο .INI θα αναφέρονται ως μέρος του ονόματος αρχείου).
[commands]
/bin/xpython=C:\Program Files\XPython\python.exe
Οποιεσδήποτε εντολές που δεν βρίσκονται στο αρχείο .INI αντιμετωπίζονται ως εκτελέσιμες διαδρομές Windows που είναι απόλυτες ή σχετικές με τον κατάλογο που περιέχει το script αρχείο. Αυτό είναι μια ευκολία για σενάρια μόνο για Windows, όπως αυτά που δημιουργούνται από ένα πρόγραμμα εγκατάστασης, δεδομένου ότι η συμπεριφορά δεν είναι συμβατή με κελύφη τύπου Unix. Αυτές οι διαδρομές μπορεί να αναφέρονται και μπορεί να περιλαμβάνουν πολλαπλά ορίσματα, μετά τη διαδρομή προς το script και θα προσαρτηθούν τυχόν πρόσθετα ορίσματα.
4.12.3. Ορίσματα στις γραμμές shebang¶
Οι γραμμές shebang μπορούν επίσης να καθορίσουν πρόσθετες επιλογές που θα μεταβιβαστούν στον διερμηνέα Python. Για παράδειγμα, εάν έχετε μια γραμμή shebang:
#! /usr/bin/python -v
Στη συνέχεια, η Python θα ξεκινήσει με την επιλογή -v
4.12.4. Προσαρμογή¶
4.12.4.1. Προσαρμογή μέσω αρχείων INI¶
Θα γίνει αναζήτηση δύο αρχείων .ini από το πρόγραμμα εκκίνησης - py.ini στον κατάλογο δεδομένων εφαρμογής του τρέχοντος χρήστη (%LOCALAPPDATA% ή $env:LocalAppData) και py.ini στον ίδιο κατάλογο με το πρόγραμμα εκκίνησης. Τα ίδια αρχεία .ini χρησιμοποιούνται τόσο για την έκδοση “κονσόλας” του προγράμματος εκκίνησης (π.χ. py.exe) όσο και για την έκδοση “windows” (δηλ. pyw.exe).
Η προσαρμογή που καθορίζεται στον «κατάλογο εφαρμογών» θα έχει προτεραιότητα έναντι αυτής που βρίσκεται δίπλα στο εκτελέσιμο αρχείο, επομένως ένας χρήστης, ο οποίος ενδέχεται να μην έχει πρόσβαση εγγραφής στο αρχείο .ini δίπλα στο πρόγραμμα εκκίνησης, μπορεί να παρακάμψει εντολές σε αυτό το καθολικό .ini αρχείο.
4.12.4.2. Προσαρμογή προεπιλεγμένων εκδόσεων Python¶
Σε ορισμένες περιπτώσεις, ένας προσδιορισμός έκδοσης μπορεί να συμπεριληφθεί σε μια εντολή για να υπαγορεύσει ποια έκδοση της Python θα χρησιμοποιηθεί από την εντολή. Ένας προσδιοριστής έκδοσης ξεκινά με τον αριθμό κύριας έκδοσης και μπορεί προαιρετικά να ακολουθείται από μια τελεία (“.”) και ένας δευτερεύων προσδιοριστής έκδοσης. Επιπλέον, είναι δυνατό να καθοριστεί εάν θα ζητηθεί υλοποίηση 32 ή 64 bit προσθέτοντας «-32» ή «-64».
Για παράδειγμα, μια γραμμή shebang του #!python δεν έχει προσδιοριστικό έκδοσης, ενώ το #!python3 έχει έναν προσδιορισμό έκδοσης που καθορίζει μόνο μια κύρια έκδοση.
If no version qualifiers are found in a command, the environment
variable PY_PYTHON can be set to specify the default version
qualifier. If it is not set, the default is «3». The variable can
specify any value that may be passed on the command line, such as «3»,
«3.7», «3.7-32» or «3.7-64». (Note that the «-64» option is only
available with the launcher included with Python 3.7 or newer.)
Εάν δεν βρεθούν περιορισμοί δευτερεύουσας έκδοσης, η μεταβλητή περιβάλλοντος 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.12.5. Διαγνωστικά¶
If an environment variable PYLAUNCHER_DEBUG is set (to any value), the
launcher will print diagnostic information to stderr (i.e. to the console).
While this information manages to be simultaneously verbose and terse, it
should allow you to see what versions of Python were located, why a
particular version was chosen and the exact command-line used to execute the
target Python. It is primarily intended for testing and debugging.
4.12.6. Dry run¶
If an environment variable PYLAUNCHER_DRYRUN is set (to any value),
the launcher will output the command it would have run, but will not actually
launch Python. This may be useful for tools that want to use the launcher to
detect and then launch Python directly. Note that the command written to
standard output is always encoded using UTF-8, and may not render correctly in
the console.
4.12.7. Εγκατάσταση κατ” απαίτηση¶
If an environment variable PYLAUNCHER_ALLOW_INSTALL is set (to any
value), and the requested Python version is not installed but is available on
the Microsoft Store, the launcher will attempt to install it. This may require
user interaction to complete, and you may need to run the command again.
An additional PYLAUNCHER_ALWAYS_INSTALL variable causes the launcher
to always try to install Python, even if it is detected. This is mainly intended
for testing (and should be used with PYLAUNCHER_DRYRUN).
4.12.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 |
Απαιτήθηκε ένα |