# 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

### 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, παρακαλώ δείτε Προχωρημένη εγκατάσταση παρακάτω για περισσότερες πληροφορίες.

### 4.1.2. Βασική χρήση

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

Για όλα τα σενάρια που περιλαμβάνουν πολλαπλές εκδόσεις runtime, η συνιστώμενη εντολή είναι `py`. Αυτή μπορεί να χρησιμοποιηθεί οπουδήποτε αντί για `python` ή τον παλαιότερο εκκινητή `py.exe`. Από προεπιλογή, το `py` ταιριάζει με τη συμπεριφορά του `python`, αλλά επιτρέπει επίσης επιλογές γραμμής εντολών για την επιλογή μιας συγκεκριμένης έκδοσης, καθώς και υποεντολές για τη διαχείριση εγκαταστάσεων. Αυτές περιγράφονται λεπτομερώς παρακάτω.

Because the `py` command may already be taken by the previous version, there is also an unambiguous `pymanager` command. Scripted installs that are intending to use Python install manager should consider using `pymanager`, due to the lower chance of encountering a conflict with existing installs. The only difference between the two commands is when running without any arguments: `py` will launch your default interpreter, while `pymanager` will display help (`pymanager exec ...` provides equivalent behaviour to `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` μπορεί να χρησιμοποιηθεί εναλλακτικά.

When no runtimes are installed, any launch command will try to install the requested version and launch it. However, after any version is installed, only the `py exec ...` and `pymanager exec ...` commands will install if the requested version is absent. Other forms of commands will display an error and direct you to use `py install` first.

### 4.1.3. Εντολή βοήθειας

Η εντολή `py help` θα εμφανίσει την πλήρη λίστα των υποστηριζόμενων εντολών, μαζί με τις επιλογές τους. Οποιαδήποτε εντολή μπορεί να περάσει την επιλογή `-?` για να εμφανίσει τη βοήθειά της, ή το όνομά της μπορεί να περαστεί στην εντολή `py help`.

    $> py help
    $> py help install
    $> py install /?

Όλες οι εντολές υποστηρίζουν μερικές κοινές επιλογές, οι οποίες θα εμφανιστούν από το `py help`. Αυτές οι επιλογές πρέπει να καθοριστούν μετά από οποιοδήποτε υποεντολή. Ο καθορισμός του `-v` ή `--verbose` θα αυξήσει την ποσότητα της εμφανιζόμενης εξόδου, και `-vv` θα την αυξήσει περαιτέρω για σκοπούς αποσφαλμάτωσης. Η μετάβαση του `-q` ή `--quiet` θα μειώσει την έξοδο, και `-qq` θα την μειώσει περαιτέρω.

Η επιλογή `--config=<PATH>` επιτρέπει τον καθορισμό ενός αρχείου διαμόρφωσης για να παρακαμφθούν πολλές ρυθμίσεις ταυτόχρονα. Δείτε Διαμόρφωση παρακάτω για περισσότερες πληροφορίες σχετικά με αυτά τα αρχεία.

### 4.1.4. Καταχώριση χρόνων εκτέλεσης

    $> 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. Εγκαθιστώντας χρόνους εκτέλεσης

    $> py install [-s=|--source=<URL>] [-f|--force] [-u|--update] [--dry-run] [<TAG>...]

Νέες εκδόσεις χρόνων εκτέλεσης μπορούν να προστεθούν χρησιμοποιώντας το `py install`. Μπορεί να καθοριστεί ένα ή περισσότερα tags, και το ειδικό tag `default` μπορεί να χρησιμοποιηθεί για την επιλογή του προεπιλεγμένου. Οι περιοχές δεν υποστηρίζονται για εγκατάσταση.

Η επιλογή `--source=<URL>` επιτρέπει την παράκαμψη του διαδικτυακού ευρετηρίου που χρησιμοποιείται για την απόκτηση χρόνων εκτέλεσης. Αυτό μπορεί να χρησιμοποιηθεί με ευρετήριο εκτός σύνδεσης, όπως φαίνεται στο Εγκαταστάσεις εκτός σύνδεσης.

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

Περνώντας την επιλογή `--update` θα αντικαταστήσει υπάρχουσες εγκαταστάσεις εάν η νέα έκδοση είναι νεότερη. Διαφορετικά, θα παραμείνουν. Εάν δεν παρέχονται tags με το `--update`, όλες οι εγκαταστάσεις που διαχειρίζεται ο διαχειριστής εγκατάστασης Python θα ενημερωθούν εάν υπάρχουν νεότερες εκδόσεις. Οι ενημερώσεις θα αφαιρέσουν τυχόν τροποποιήσεις που έγιναν στην εγκατάσταση, συμπεριλαμβανομένων των παγκοσμίως εγκατεστημένων πακέτων, αλλά τα εικονικά περιβάλλοντα θα συνεχίσουν να λειτουργούν.

Περνώντας την επιλογή `--dry-run` θα δημιουργήσει έξοδο και αρχεία καταγραφής, αλλά δεν θα τροποποιήσει καμία εγκατάσταση.

Passing `--refresh` will update all registrations for installed runtimes. This will recreate Start menu shortcuts, registry keys, and global aliases (such as `python3.14.exe` or for any installed scripts). These are automatically refreshed on installation of any runtime, but may need to be manually refreshed after installing packages.

In addition to the above options, the `--target` option will extract the runtime to the specified directory instead of doing a normal install. This is useful for embedding runtimes into larger applications. Unlike a normal install, `py` will not be aware of the extracted runtime, and no Start menu or other shortcuts will be created. To launch the runtime, directly execute the main executable (typically `python.exe`) in the target directory.

    $> py install ... [-t=|--target=<PATH>] <TAG>

The `py exec` command will install the requested runtime if it is not already present. This is controlled by the `automatic_install` configuration (`PYTHON_MANAGER_AUTOMATIC_INSTALL`), and is enabled by default. If no runtimes are available at all, all launch commands will do an automatic install if the configuration setting allows. This is to ensure a good experience for new users, but should not generally be relied on rather than using the `py exec` command or explicit install commands.

### 4.1.6. Εγκαταστάσεις εκτός σύνδεσης

Για να πραγματοποιήσετε εγκαταστάσεις εκτός σύνδεσης της 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. Απεγκατάσταση χρόνων εκτέλεσης

    $> 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 διαμορφώνεται με μια ιεραρχία αρχείων διαμόρφωσης, μεταβλητών περιβάλλοντος, επιλογών γραμμής εντολών, και ρυθμίσεων μητρώου. Γενικά, τα αρχεία διαμόρφωσης έχουν τη δυνατότητα να διαμορφώσουν τα πάντα, συμπεριλαμβανομένης της τοποθεσίας άλλων αρχείων διαμόρφωσης, ενώ οι ρυθμίσεις μητρώου είναι μόνο για διαχειριστές και θα παρακάμψουν τα αρχεία διαμόρφωσης.

Αυτή η ενότητα θα περιγράψει τις προεπιλογές, αλλά να γνωρίζετε ότι οι τροποποιημένες ή παρακαμφθείσες εγκαταστάσεις μπορεί να επιλύσουν τις ρυθμίσεις διαφορετικά.

A global configuration file may be configured by an administrator, and would be read first. The user configuration file is stored at `%AppData%\Python\pymanager.json` (note that this location is under `Roaming`, not `Local`) and is read next, overwriting any settings from earlier files. An additional configuration file may be specified as the `PYTHON_MANAGER_CONFIG` environment variable or the `--config` command line option (but not both). These locations may be modified by administrative customization options listed later.

Οι ακόλουθες ρυθμίσεις είναι αυτές που θεωρούνται πιθανό να τροποποιηθούν σε κανονική χρήση. Οι επόμενες ενότητες απαριθμούν αυτές που προορίζονται για διοικητική προσαρμογή.

Τυπικές επιλογές διαμόρφωσης

Κλειδί Διαμόρφωσης | Μεταβλητή Περιβάλλοντος | Περιγραφή
--- | --- | ---
`default_tag` | PYTHON_MANAGER_DEFAULT | Η προτιμώμενη προεπιλεγμένη έκδοση για εκκίνηση ή εγκατάσταση. Κατά προεπιλογή, αυτό ερμηνεύεται ως η πιο πρόσφατη μη-προκαταρκτική έκδοση από την ομάδα CPython.
`default_platform` | `PYTHON_MANAGER_DEFAULT_PLATFORM` | Η προτιμώμενη προεπιλεγμένη πλατφόρμα για εκκίνηση ή εγκατάσταση. Αυτό αντιμετωπίζεται ως κατάληξη στο καθορισμένο tag, έτσι ώστε το `py -V:3.14` θα προτιμούσε μια εγκατάσταση για το `3.14-64` εάν υπάρχει (και το `default_platform` είναι `-64`), αλλά θα χρησιμοποιούσε το `3.14` εάν δεν υπάρχει εγκατάσταση με tag.
`logs_dir` | `PYTHON_MANAGER_LOGS` | Η τοποθεσία όπου γράφονται τα αρχεία καταγραφής. Κατά προεπιλογή, `%TEMP%`.
`automatic_install` | PYTHON_MANAGER_AUTOMATIC_INSTALL | True to allow automatic installs when using `py exec` to launch (or `py` when no runtimes are installed yet). Other commands will not automatically install, regardless of this setting. By default, true.
`include_unmanaged` | `PYTHON_MANAGER_INCLUDE_UNMANAGED` | True για να επιτρέπεται η καταχώριση και η εκκίνηση χρόνων εκτέλεσης που δεν εγκαταστάθηκαν από τον διαχειριστή εγκατάστασης Python, ή false για να τους εξαιρέσετε. Κατά προεπιλογή, true.
`shebang_can_run_anything` | `PYTHON_MANAGER_SHEBANG_CAN_RUN_ANYTHING` | True για να επιτρέπεται στις shebangs σε αρχεία `.py` να εκκινούν εφαρμογές εκτός από χρόνους εκτέλεσης Python, ή false για να το αποτρέψετε. Κατά προεπιλογή, true.
`log_level` | `PYMANAGER_VERBOSE`, `PYMANAGER_DEBUG` | Ορίζει το προεπιλεγμένο επίπεδο εξόδου (0-50). Κατά προεπιλογή, 20. Χαμηλότερες τιμές παράγουν περισσότερη έξοδο. Οι μεταβλητές περιβάλλοντος είναι boolean, και μπορεί να παράγουν επιπλέον έξοδο κατά την εκκίνηση που αργότερα καταστέλλεται από άλλες ρυθμίσεις.
`confirm` | `PYTHON_MANAGER_CONFIRM` | True για να επιβεβαιώσετε ορισμένες ενέργειες πριν τις εκτελέσετε (όπως η απεγκατάσταση), ή false για να παραλείψετε την επιβεβαίωση. Κατά προεπιλογή, true.
`install.source` | `PYTHON_MANAGER_SOURCE_URL` | Αντικαταστήστε την πηγή του δείκτη για να αποκτήσετε νέες εγκαταστάσεις.
`install.enable_entrypoints` | (none) | True to generate global commands for installed packages (such as `pip.exe`). These are defined by the packages themselves. If set to false, only the Python interpreter has global commands created. By default, true. You should run `py install --refresh` after changing this setting.
`list.format` | `PYTHON_MANAGER_LIST_FORMAT` | Καθορίστε την προεπιλεγμένη μορφή που χρησιμοποιείται από την εντολή `py list`. Κατά προεπιλογή, `table`.
`install_dir` | (none) | Καθορίστε τον ριζικό κατάλογο στον οποίο θα εγκατασταθούν οι χρόνοι εκτέλεσης. Εάν αλλάξετε αυτήν τη ρύθμιση, οι προηγουμένως εγκατεστημένοι χρόνοι εκτέλεσης δεν θα είναι χρησιμοποιήσιμοι εκτός εάν τους μετακινήσετε στη νέα τοποθεσία.
`global_dir` | (none) | Specify the directory where global commands (such as `python3.14.exe` and `pip.exe`) are stored. This directory should be added to your `PATH` to make the commands available from your terminal.
`download_dir` | (none) | Καθορίστε τον κατάλογο όπου αποθηκεύονται τα αρχεία που έχουν ληφθεί. Αυτός ο κατάλογος είναι μια προσωρινή μνήμη και μπορεί να καθαριστεί από καιρό σε καιρό.

Τα ονόματα με τελείες θα πρέπει να είναι εμφωλευμένα μέσα σε αντικείμενα 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`.

Σημείωση

Η συμπεριφορά των shebangs στον διαχειριστή εγκατάστασης Python είναι λεπτά διαφορετική από τον προηγούμενο εκκινητή `py.exe`, και οι παλιές επιλογές διαμόρφωσης δεν ισχύουν πλέον. Εάν βασίζεστε συγκεκριμένα στην παλιά συμπεριφορά ή διαμόρφωση, συνιστούμε την εγκατάσταση του legacy launcher. Η εντολή `py` του legacy launcher θα παρακάμψει αυτήν του PyManager από προεπιλογή, και θα χρειαστεί να χρησιμοποιήσετε τις εντολές `pymanager` για εγκατάσταση και απεγκατάσταση.

### 4.1.10. Προχωρημένη εγκατάσταση

Για καταστάσεις όπου ένα MSIX δεν μπορεί να εγκατασταθεί, όπως ορισμένες παλαιότερες πλατφόρμες διανομής για διαχειριστές, υπάρχει ένα MSI διαθέσιμο από τη σελίδα λήψεων του python.org. Αυτό το MSI δεν έχει διεπαφή χρήστη, και μπορεί μόνο να πραγματοποιήσει εγκαταστάσεις ανά μηχάνημα στην προεπιλεγμένη τοποθεσία στα Program Files. Θα προσπαθήσει να τροποποιήσει τη συστημική μεταβλητή `PATH` για να συμπεριλάβει αυτή την τοποθεσία εγκατάστασης, αλλά βεβαιωθείτε ότι το επαληθεύετε στη διαμόρφωσή σας.

Σημείωση

Τα Windows Server 2019 είναι η μόνη έκδοση των Windows που υποστηρίζει η CPython και δεν υποστηρίζει MSIX. Για τα Windows Server 2019, θα πρέπει να χρησιμοποιήσετε το MSI.

Να γνωρίζετε ότι το πακέτο MSI δεν περιλαμβάνει κανέναν χρόνο εκτέλεσης, και έτσι δεν είναι κατάλληλο για εγκαταστάσεις σε περιβάλλοντα χωρίς σύνδεση στο διαδίκτυο χωρίς επίσης τη δημιουργία ενός ευρετηρίου εγκατάστασης χωρίς σύνδεση. Δείτε Εγκαταστάσεις εκτός σύνδεσης και Διαχειριστική διαμόρφωση για πληροφορίες σχετικά με τη διαχείριση αυτών των σεναρίων.

Οι χρόνοι εκτέλεσης που εγκαθίστανται από το 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. Διαχειριστική διαμόρφωση

Υπάρχουν πολλές επιλογές που μπορεί να είναι χρήσιμες για τους διαχειριστές για να υπερκαλύψουν τη διαμόρφωση του διαχειριστή εγκατάστασης Python. Αυτές μπορούν να χρησιμοποιηθούν για την παροχή τοπικής προσωρινής αποθήκευσης, την απενεργοποίηση ορισμένων τύπων συντομεύσεων, την υπερκάλυψη ενσωματωμένου περιεχομένου. Όλες οι παραπάνω επιλογές διαμόρφωσης μπορούν να οριστούν, καθώς και αυτές παρακάτω.

Οι επιλογές διαμόρφωσης μπορούν να υπερκαλυφθούν στο μητρώο ρυθμίζοντας τιμές κάτω από `HKEY_LOCAL_MACHINE\Software\Policies\Python\PyManager`, όπου το όνομα της τιμής ταιριάζει με το κλειδί διαμόρφωσης και ο τύπος τιμής είναι `REG_SZ`. Σημειώστε ότι αυτό το κλειδί μπορεί να προσαρμοστεί, αλλά μόνο τροποποιώντας το βασικό αρχείο διαμόρφωσης που διανέμεται με τον διαχειριστή εγκατάστασης Python. Ωστόσο, συνιστούμε, ωστόσο, ότι οι τιμές μητρώου χρησιμοποιούνται μόνο για να ορίσουν `base_config` σε ένα αρχείο JSON που περιέχει το πλήρες σύνολο των υπερκαλύψεων. Οι υπερκαλύψεις κλειδιών μητρώου θα αντικαταστήσουν οποιαδήποτε άλλη ρυθμισμένη ρύθμιση, ενώ `base_config` επιτρέπει στους χρήστες να τροποποιούν περαιτέρω ρυθμίσεις που μπορεί να χρειαστούν.

Σημειώστε ότι οι περισσότερες ρυθμίσεις με μεταβλητές περιβάλλοντος υποστηρίζουν αυτές τις μεταβλητές επειδή η προεπιλεγμένη ρύθμισή τους καθορίζει τη μεταβλητή. Εάν τις υπερκαλύψετε, η μεταβλητή περιβάλλοντος δεν θα λειτουργεί πλέον, εκτός εάν την υπερκαλύψετε με άλλη. Για παράδειγμα, η προεπιλεγμένη τιμή του `confirm` είναι κυριολεκτικά `%PYTHON_MANAGER_CONFIRM%`, η οποία θα επιλύσει τη μεταβλητή κατά το χρόνο φόρτωσης. Εάν υπερκαλύψετε την τιμή σε `yes`, τότε η μεταβλητή περιβάλλοντος δεν θα χρησιμοποιείται πλέον. Εάν υπερκαλύψετε την τιμή σε `%CONFIRM%`, τότε θα χρησιμοποιηθεί αυτή η μεταβλητή περιβάλλοντος.

Οι ρυθμίσεις διαμόρφωσης που είναι διαδρομές ερμηνεύονται ως σχετικές με τον κατάλογο που περιέχει το αρχείο διαμόρφωσης που τις καθόρισε.

Διαχειριστικές επιλογές διαμόρφωσης

Κλειδί Διαμόρφωσης | Περιγραφή
--- | ---
`base_config` | Το αρχείο διαμόρφωσης με την υψηλότερη προτεραιότητα για ανάγνωση. Σημειώστε ότι μόνο το ενσωματωμένο αρχείο διαμόρφωσης και το μητρώο μπορούν να τροποποιήσουν αυτήν τη ρύθμιση.
`user_config` | Το δεύτερο αρχείο διαμόρφωσης για ανάγνωση.
`additional_config` | Το τρίτο αρχείο διαμόρφωσης για ανάγνωση.
`registry_override_key` | Τοποθεσία μητρώου για έλεγχο για υπερκαλύψεις. Σημειώστε ότι μόνο το ενσωματωμένο αρχείο διαμόρφωσης μπορεί να τροποποιήσει αυτήν τη ρύθμιση.
`bundled_dir` | Κατάλογος μόνο για ανάγνωση που περιέχει τοπικά αποθηκευμένα αρχεία.
`install.fallback_source` | Διαδρομή ή URL σε έναν ευρετήριο για συμβουλή όταν δεν είναι δυνατή η πρόσβαση στον κύριο ευρετήριο.
`install.enable_shortcut_kinds` | Λίστα με κόμμα διαχωρισμένων ειδών συντομεύσεων για να επιτρέπονται (π.χ. `"pep514,start"`). Οι ενεργοποιημένες συντομεύσεις ενδέχεται ακόμη να απενεργοποιηθούν από το `disable_shortcut_kinds`.
`install.disable_shortcut_kinds` | Λίστα με κόμμα διαχωρισμένων ειδών συντομεύσεων για να εξαιρούνται (π.χ. `"pep514,start"`). Οι απενεργοποιημένες συντομεύσεις δεν επανενεργοποιούνται από το `enable_shortcut_kinds`.
`install.hard_link_entrypoints` | True to use hard links for global shortcuts to save disk space. If false, each shortcut executable is copied instead. After changing this setting, you must run `py install --refresh --force` to update existing commands. By default, true. Disabling this may be necessary for troubleshooting or systems that have issues with file links.
`pep514_root` | Τοποθεσία μητρώου για ανάγνωση και εγγραφή καταχωρήσεων PEP 514. Από προεπιλογή, `HKEY_CURRENT_USER\Software\Python`.
`start_folder` | Φάκελος μενού Έναρξης για εγγραφή συντομεύσεων. Από προεπιλογή, `Python`. Αυτή η διαδρομή είναι σχετική με το φάκελο Προγράμματα του χρήστη.
`virtual_env` | Διαδρομή προς το ενεργό εικονικό περιβάλλον. Από προεπιλογή, αυτό είναι `%VIRTUAL_ENV%`, αλλά μπορεί να οριστεί κενό για να απενεργοποιηθεί η ανίχνευση venv.
`shebang_can_run_anything_silently` | True για να καταστείλει ορατές προειδοποιήσεις όταν ένα shebang εκκινεί μια εφαρμογή εκτός από μια εκτελέσιμη Python.
`source_settings` | A mapping from source URL to settings specific to that index. When multiple configuration files include this section, URL settings are added or overwritten, but individual settings are not merged. These settings are currently only for index signatures.

### 4.1.12. Εγκατάσταση Δυαδικών Αρχείων με Ελεύθερα Νήματα

Added in version 3.13.

Οι προ-κατασκευασμένες διανομές της έκδοσης με ελεύθερα νήματα είναι διαθέσιμες με την εγκατάσταση ετικετών με το επίθημα `t`.

    $> 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. Index signatures

Added in version 26.2.

Index files may be signed to detect tampering. A signature is a catalog file at the same URL as the index with `.cat` added to the filename. The catalog file should contain the hash of its matching index file, and should be signed with a valid Authenticode signature. This allows standard tooling (on Windows) to generate a signature, and any certificate may be used as long as the client operating system already trusts its certification authority (root CA).

Index signatures are only downloaded and checked when the local configuration’s `source_settings` section includes the index URL and `requires_signature` is true, or the index JSON contains `requires_signature` set to true. When the setting exists in local configuration, even when false, settings in the index are ignored.

As well as requiring a valid signature, the `required_root_subject` and `required_publisher_subject` settings can further restrict acceptable signatures based on the certificate Subject fields. Any attribute specified in the configuration must match the attribute in the certificate (additional attributes in the certificate are ignored). Typical attributes are `CN=` for the common name, `O=` for the organizational unit, and `C=` for the publisher’s country.

Finally, the `required_publisher_eku` setting allows requiring that a specific Enhanced Key Usage (EKU) has been assigned to the publisher certificate. For example, the EKU `1.3.6.1.5.5.7.3.3` indicates that the certificate was intended for code signing (as opposed to server or client authentication). In combination with a specific root CA, this provides another mechanism to verify a legitimate signature.

This is an example `source_settings` section from a configuration file. In this case, the publisher of the feed is uniquely identified by the combination of the Microsoft Identity Verification root and the EKU assigned by that root. The signature for this case would be found at `https://www.python.org/ftp/python/index-windows.json.cat`.

    {
      "source_settings": {
        "https://www.python.org/ftp/python/index-windows.json": {
          "requires_signature": true,
          "required_root_subject": "CN=Microsoft Identity Verification Root Certificate Authority 2020",
          "required_publisher_subject": "CN=Python Software Foundation",
          "required_publisher_eku": "1.3.6.1.4.1.311.97.608394634.79987812.305991749.578777327"
        }
      }
    }

The same settings could be specified in the `index.json` file instead. In this case, the root and EKU are omitted, meaning that the signature must be valid and have a specific common name in the publisher’s certificate, but no other checks are used.

    {
      "requires_signature": true,
      "required_publisher_subject": "CN=Python Software Foundation",
      "versions": [
        // ...
      ]
    }

When settings from inside a feed are used, the user is notified and the settings are shown in the log file or verbose output. It is recommended to copy these settings into a local configuration file for feeds that will be used frequently, so that unauthorised modifications to the feed cannot disable verification.

It is not possible to override the location of the signature file in the feed or through a configuration file. Administrators can provide their own `source_settings` in a mandatory configuration file (see Διαχειριστική διαμόρφωση).

If signature validation fails, you will be notified and prompted to continue. When interactive confirmation is not allowed (for example, because `--yes` was specified), it will always abort. To use a feed with invalid configuration in this scenario, you must provide a configuration file that disables signature checking for that feed.

    "source_settings": {
      "https://www.example.com/feed-with-invalid-signature.json": {
        "requires_signature": false
      }
    }

### 4.1.14. Αντιμετώπιση προβλημάτων

If your Python install manager does not seem to be working correctly, please work through these tests and fixes to see if it helps. If not, please report an issue at our bug tracker, including any relevant log files (written to your `%TEMP%` directory by default).

Αντιμετώπιση προβλημάτων

Σύμπτωμα | Πράγματα που μπορείτε να δοκιμάσετε
--- | ---
το `python` μου δίνει σφάλμα «command not found» ή ανοίγει την εφαρμογή Store όταν το πληκτρολογώ στο τερματικό μου. | Εγκαταστήσατε το install the Python install manager
| Κάντε κλικ στο Έναρξη, ανοίξτε το «Διαχείριση εκτέλεσης εφαρμογών» και ελέγξτε ότι τα aliases για το «Python (default)» είναι ενεργοποιημένα. Εάν ήδη είναι, δοκιμάστε να τα απενεργοποιήσετε και να τα ενεργοποιήσετε ξανά για να ανανεώσετε την εντολή. Οι εντολές «Python (default windowed)» και «Python install manager» ενδέχεται επίσης να χρειάζονται ανανέωση.
| Ελέγξτε ότι οι εντολές `py` και `pymanager` λειτουργούν.
| Ensure your `PATH` variable contains the entry for `%UserProfile%\AppData\Local\Microsoft\WindowsApps`. The operating system includes this entry once by default, after other user paths. If removed, shortcuts will not be found.
Το `py` μου δίνει σφάλμα «command not found» όταν το πληκτρολογώ στο τερματικό μου. | Εγκαταστήσατε το install the Python install manager
| Κάντε κλικ στο Έναρξη, ανοίξτε το «Διαχείριση εκτέλεσης εφαρμογών» και ελέγξτε ότι τα aliases για το «Python (default)» είναι ενεργοποιημένα. Εάν ήδη είναι, δοκιμάστε να τα απενεργοποιήσετε και να τα ενεργοποιήσετε ξανά για να ανανεώσετε την εντολή. Οι εντολές «Python (default windowed)» και «Python install manager» ενδέχεται επίσης να χρειάζονται ανανέωση.
| Ensure your `PATH` variable contains the entry for `%UserProfile%\AppData\Local\Microsoft\WindowsApps`. The operating system includes this entry once by default, after other user paths. If removed, shortcuts will not be found.
το `py` μου δίνει σφάλμα «can’t open file» όταν πληκτρολογώ εντολές στο τερματικό μου. | Αυτό συνήθως σημαίνει ότι έχετε εγκαταστήσει τον παλιό launcher και έχει προτεραιότητα έναντι του διαχειριστή εγκατάστασης Python. Για να το αφαιρέσετε, κάντε κλικ στο Έναρξη, ανοίξτε το «Εγκατεστημένες εφαρμογές», αναζητήστε το «Python launcher» και απεγκαταστήστε το.
η `python` δεν ξεκινά το ίδιο runtime με το `py` | Κάντε κλικ στο Έναρξη, ανοίξτε το «Εγκατεστημένες εφαρμογές», αναζητήστε τους υπάρχοντες Python runtimes και είτε αφαιρέστε τους είτε τροποποιήστε και απενεργοποιήστε τις επιλογές `PATH`.
| Κάντε κλικ στο Έναρξη, ανοίξτε το «Διαχείριση εκτέλεσης εφαρμογών» και ελέγξτε ότι το alias `python.exe` είναι ρυθμισμένο σε «Python (default)»
`python` και `py` δεν ξεκινούν το runtime που περιμένω | Ελέγξτε τη μεταβλητή περιβάλλοντος `PYTHON_MANAGER_DEFAULT` ή τη διαμόρφωση `default_tag`. Η εντολή `py list` θα εμφανίσει την προεπιλογή σας με βάση αυτές τις ρυθμίσεις.
| Εγκαταστάσεις που διαχειρίζονται από τον διαχειριστή εγκατάστασης Python θα επιλεγούν πριν από τις μη διαχειριζόμενες εγκαταστάσεις. Χρησιμοποιήστε το `py install` για να εγκαταστήσετε το runtime που περιμένετε, ή διαμορφώστε την προεπιλεγμένη ετικέτα σας.
| Prerelease and experimental installs that are not managed by the Python install manager may be chosen ahead of stable releases. Configure your default tag or uninstall the prerelease runtime and reinstall it using `py install`.
`pythonw` ή `pyw` δεν ξεκινούν το ίδιο runtime με το `python` ή το `py` | Κάντε κλικ στο Έναρξη, ανοίξτε το «Διαχείριση εκτέλεσης εφαρμογών» και ελέγξτε ότι τα aliases σας `pythonw.exe` και `pyw.exe` είναι συνεπή με τα άλλα.
Το `pip` μου δίνει σφάλμα «command not found» όταν το πληκτρολογώ στο τερματικό μου. | Έχετε ενεργοποιήσει ένα εικονικό περιβάλλον; Εκτελέστε το script `.venv\Scripts\activate` στο τερματικό σας για να το ενεργοποιήσετε.
| The package may be available but missing the generated executable. We recommend using the `python -m pip` command instead. Running `py install --refresh` and ensuring that the global shortcuts directory is on `PATH` (it will be shown in the command output if it is not) should make commands such as `pip` (and other installed packages) available.
I installed a package with `pip` but its command is not found. | Έχετε ενεργοποιήσει ένα εικονικό περιβάλλον; Εκτελέστε το script `.venv\Scripts\activate` στο τερματικό σας για να το ενεργοποιήσετε.
| New packages do not automatically have global shortcuts created by the Python install manager. Similarly, uninstalled packages do not have their shortcuts removed. Run `py install --refresh` to update the global shortcuts for newly installed packages.
Πληκτρολογώντας `script-name.py` στο τερματικό ανοίγει σε νέο παράθυρο. | Αυτή είναι μια γνωστή περιορισμός του λειτουργικού συστήματος. Είτε καθορίστε `py` πριν από το όνομα του script, δημιουργήστε ένα αρχείο batch που περιέχει `@py "%~dpn0.py" %*` με το ίδιο όνομα με το script, είτε εγκαταστήστε τον legacy launcher και επιλέξτε τον ως την συσχέτιση για τα scripts.
Το drag-dropping αρχείων σε ένα script δεν λειτουργεί | Αυτή είναι μια γνωστή περιορισμός του λειτουργικού συστήματος. Υποστηρίζεται με τον legacy launcher, ή με τον διαχειριστή εγκατάστασης Python όταν εγκαθίσταται από το MSI.
I have installed the Python install manager multiple times. | It is possible to install from the Store or WinGet, from the MSIX on the Python website, and from the MSI, all at once. They are all compatible and will share configuration and runtimes.
| See the earlier Προχωρημένη εγκατάσταση section for ways to uninstall the install manager other than the typical Installed Apps (Add and Remove Programs) settings page.
My old `py.ini` settings no longer work. | The new Python install manager no longer supports this configuration file or its settings, and so it will be ignored. See Διαμόρφωση for information about configuration settings.

## 4.2. Το ενσωματωμένο πακέτο

Added in version 3.5.

Η ενσωματωμένη διανομή είναι ένα αρχείο ZIP που περιέχει ένα ελάχιστο περιβάλλον Python. Προορίζεται για δράση ως μέρος μιας άλλης εφαρμογής, αντί να έχει άμεση πρόσβαση από τους τελικούς χρήστες.

Για να εγκαταστήσετε μια ενσωματωμένη διανομή, προτείνουμε τη χρήση του `py install` με την επιλογή `--target`:

    $> py install 3.14-embed --target=<directory>

Όταν εξάγεται, η ενσωματωμένη διανομή απομονώνεται (σχεδόν) πλήρως από το σύστημα του χρήστη, συμπεριλαμβανομένων μεταβλητών περιβάλλοντος, ρυθμίσεων μητρώου συστήματος και εγκατεστημένων πακέτων. Η τυπική βιβλιοθήκη περιλαμβάνεται ως προ-μεταγλωττισμένα και βελτιστοποιημένα αρχεία `.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

Μια εφαρμογή γραμμένη σε 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 για την έκδοση 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.

WinPython

  Διανομή ειδικά για Windows με προκατασκευασμένα επιστημονικά πακέτα και εργαλεία για την κατασκευή πακέτων.

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

## 4.5. Υποστηριζόμενες εκδόσεις των Windows

Όπως ορίζεται στο PEP 11, μια έκδοση Python υποστηρίζει μόνο μια πλατφόρμα Windows, ενώ η Microsoft θεωρεί την πλατφόρμα υπό εκτεταμένη υποστήριξη. Αυτό σημαίνει ότι η Python 3.16 υποστηρίζει Windows 8.1 και νεότερες εκδόσεις. Εάν χρειάζεστε υποστήριξη Windows 7, εγκαταστήστε την Python 3.8. Εάν χρειάζεστε υποστήριξη Windows 8.1, εγκαταστήστε την Python 3.12.

## 4.6. Αφαίρεση του περιορισμού MAX_PATH

Τα 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.

Άλλαξε στην έκδοση 3.15: Python UTF-8 mode is now enabled by default (PEP 686).

Τα Windows εξακολουθούν να χρησιμοποιούν κωδικοποιήσεις παλαιού τύπου για την κωδικοποίηση του συστήματος (τη σελίδα κώδικα ANSI). Η Python τη χρησιμοποιεί για την προεπιλεγμένη κωδικοποίηση αρχείων κειμένου (π.χ. `locale.getencoding()`).

Αυτό μπορεί να προκαλέσει προβλήματα επειδή το UTF-8 χρησιμοποιείται ευρέως στο διαδίκτυο και στα περισσότερα συστήματα Unix, συμπεριλαμβανομένου του WSL (Windows Subsystem for Linux).

The Python UTF-8 Mode, enabled by default, can help by changing the default text encoding to UTF-8. When the UTF-8 mode is enabled, you can still use the system encoding (the ANSI Code Page) via the «mbcs» codec.

You can disable the Python UTF-8 Mode via the `-X utf8=0` command line option, or the `PYTHONUTF8=0` environment variable. See `PYTHONUTF8` for disabling UTF-8 mode, and Διαχειριστής εγκατάστασης Python for how to modify environment variables.

Συμβουλή

Adding `PYTHONUTF8={0,1}` to the default environment variables will affect all Python 3.7+ applications on your system. If you have any Python 3.7+ applications which rely on the legacy system encoding, it is recommended to set the environment variable temporarily or use the `-X utf8` command line option.

Σημείωση

Ακόμη και όταν η λειτουργία 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` πριν από την εκκίνηση του `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 αναδιπλώνει 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 για το σύγχρονο πρόγραμμα εγκατάστασης.

### 4.11.1. Βήματα Εγκατάστασης

Τέσσερα προγράμματα εγκατάστασης Python 3.16 είναι διαθέσιμα για λήψη - δύο το καθένα για τις εκδόσεις 32-bit και 64-bit του διερμηνέα. Το πρόγραμμα εγκατάστασης web είναι μια αρχική λήψη και θα πραγματοποιήσει αυτόματα λήψη των απαιτούμενων στοιχείων, όπως απαιτείται. Το πρόγραμμα εγκατάστασης εκτός σύνδεσης περιλαμβάνει τα στοιχεία που είναι απαραίτητα για μια προεπιλεγμένη εγκατάσταση και απαιτεί μόνο σύνδεση στο διαδίκτυο για προαιρετικές λειτουργίες. Δείτε το Εγκατάσταση χωρίς λήψη για άλλους τρόπους αποφυγής λήψης κατά την εγκατάσταση.

Μετά την εκκίνηση του προγράμματος εγκατάστασης, μπορεί να επιλέγει μία από τις δύο επιλογές:

Εάν επιλέξετε «Install Now»:

- Δεν θα χρειάζεται να είστε διαχειριστής (εκτός εάν απαιτείται ενημέρωση συστήματος για τη Βιβλιοθήκη C Runtime ή εγκαταστήσετε το Διαχειριστής εγκατάστασης Python για όλους τους χρήστες)

- Η Python θα εγκατασταθεί στον κατάλογο του χρήστη σας

- Το Διαχειριστής εγκατάστασης Python θα εγκατασταθεί σύμφωνα με την επιλογή στο κάτω μέρος της πρώτης σελίδας

- Θα εγκατασταθεί η τυπική βιβλιοθήκη, η δοκιμαστική σουίτα, ο εκκινητής και το pip

- Εάν επιλεγεί, ο κατάλογος εγκατάστασης θα προστεθεί στο `PATH` σας

- Οι συντομεύσεις θα είναι ορατές μόνο για τον τρέχοντα χρήστη

Επιλέγοντας «Customize installation» θα σας επιτρέψει να επιλέξετε τις λειτουργίες προς εγκατάσταση, τη θέση εγκατάστασης και άλλες επιλογές ή ενέργειες μετά την εγκατάσταση. Για να εγκαταστήσετε σύμβολα εντοπισμού σφαλμάτων ή δυαδικά αρχεία, θα χρειαστεί να χρησιμοποιήσετε αυτήν την επιλογή.

Για να εκτελέσετε μια εγκατάσταση για όλους τους χρήστες, θα πρέπει να επιλέξετε «Customize installation». Σε αυτήν την περίπτωση:

- Ενδέχεται να σας ζητηθεί να παρέχετε διαπιστευτήρια διαχείρισης ή έγκριση

- Η Python θα εγκατασταθεί στον κατάλογο Program Files

- Το Διαχειριστής εγκατάστασης Python θα εγκατασταθεί στον κατάλογο των Windows

- Προαιρετικά χαρακτηριστικά μπορούν να επιλεγούν κατά την εγκατάσταση

- Η τυπική βιβλιοθήκη μπορεί να προ-μεταγλωττιστεί σε bytecode

- Εάν επιλεγεί, ο κατάλογος εγκατάστασης θα προστεθεί στο σύστημα `PATH`

- Οι συντομεύσεις είναι διαθέσιμες για όλους τους χρήστες

### 4.11.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.11.3. Εγκατάσταση χωρίς περιβάλλον διεπαφής χρήστη

Όλες οι διαθέσιμες επιλογές στη διεπαφή χρήστη του προγράμματος εγκατάστασης μπορούν επίσης να καθοριστούν από τη γραμμή εντολών, επιτρέποντας στους εγκαταστάτες με script να αναπαράγουν μια εγκατάσταση σε πολλά μηχανήματα χωρίς αλληλεπίδραση με τον χρήστη. Αυτές οι επιλογές μπορούν επίσης να οριστούν χωρίς να καταργηθεί η διεπαφή χρήστη προκειμένου να αλλάξουν ορισμένες από τις προεπιλογές.

Οι ακόλουθες επιλογές (που βρίσκονται εκτελώντας το πρόγραμμα εγκατάστασης με `/?`) μπορούν να περάσουν στο πρόγραμμα εγκατάστασης:

Όνομα | Περιγραφή
--- | ---
/passive | για εμφάνιση προόδου χωρίς να απαιτείται αλληλεπίδραση με τον χρήστη
/quiet | για εγκατάσταση/απεγκατάσταση χωρίς εμφάνιση διεπαφής χρήστη
/simple | για να αποτρέψετε την προσαρμογή του χρήστη
/uninstall | για να αφαιρέσετε την Python (χωρίς επιβεβαίωση)
/layout [κατάλογος] | για προ-λήψη όλων των στοιχείων
/log [όνομα αρχείου] | για να καθορίσετε τη θέση των αρχείων καταγραφής

Όλες οι άλλες επιλογές μεταβιβάζονται ως `name=value`, όπου η τιμή είναι συνήθως `0` για να απενεργοποιήσετε ένα χαρακτηριστικό, `1` για να ενεργοποιήσετε ένα χαρακτηριστικό ή μια διαδρομή. Η πλήρης λίστα των διαθέσιμων επιλογών φαίνεται παρακάτω.

Όνομα | Περιγραφή | Προεπιλογή
--- | --- | ---
InstallAllUsers | Εκτέλεση εγκατάστασης σε όλο το σύστημα. | 0
TargetDir | Ο κατάλογος εγκατάστασης | Επιλέχθηκε με βάση το InstallAllUsers
DefaultAllUsersTargetDir | Ο προεπιλεγμένος κατάλογος εγκατάστασης για τις εγκαταστάσεις όλων των χρηστών | `%ProgramFiles%\Python X.Y` or `%ProgramFiles(x86)%\Python X.Y`
DefaultJustForMeTargetDir | Ο προεπιλεγμένος κατάλογος εγκατάστασης για εξατομικευμένες εγκαταστάσεις | `%LocalAppData%\Programs\Python\PythonXY` or `%LocalAppData%\Programs\Python\PythonXY-32` or `%LocalAppData%\Programs\Python\PythonXY-64`
DefaultCustomTargetDir | Ο προεπιλεγμένος κατάλογος προσαρμοσμένης εγκατάστασης που εμφανίζεται στο UI | (empty)
AssociateFiles | Δημιουργήστε συσχετίσεις αρχείων εάν είναι επίσης εγκατεστημένο το πρόγραμμα εκκίνησης. | 1
CompileAll | Μεταγλώττιση όλων των αρχείων `.py` σε `.pyc`. | 0
PrependPath | Προετοιμάστε τους καταλόγους εγκατάστασης και Scripts στο `PATH` και προσθέστε το `.PY` στο `PATHEXT` | 0
AppendPath | Προσθήκη καταλόγων εγκατάστασης και Scripts σε `PATH` και προσθήκη `.PY` σε `PATHEXT` | 0
Συντομεύσεις | Δημιουργήστε συντομεύσεις για τον διερμηνέα, την τεκμηρίωση και το IDLE εάν είναι εγκατεστημένα. | 1
Include_doc | Εγκαταστήστε το εγχειρίδιο της Python | 1
Include_debug | Εγκαταστήστε δυαδικά αρχεία εντοπισμού σφαλμάτων | 0
Include_dev | Εγκατάσταση κεφαλίδων και βιβλιοθηκών προγραμματιστή. Η παράλειψη αυτού μπορεί να οδηγήσει σε μη χρησιμοποιήσιμη εγκατάσταση. | 1
Include_exe | Εγκατάσταση `python.exe` και σχετικών αρχείων. Η παράλειψη αυτού μπορεί να οδηγήσει σε μη χρησιμοποιήσιμη εγκατάσταση. | 1
Include_launcher | Εγκαταστήστε το Διαχειριστής εγκατάστασης Python. | 1
InstallLauncherAllUsers | Εγκαθιστά το πρόγραμμα εκκίνησης για όλους του χρήστες. Επίσης, απαιτείται η ρύθμιση `Include_launcher` να τεθεί σε 1 | 1
Include_lib | Εγκαταστήστε τυπικά module βιβλιοθήκης και επέκτασης. Η παράλειψη αυτού μπορεί να οδηγήσει σε μη χρησιμοποιήσιμη εγκατάσταση. | 1
Include_pip | Εγκαταστήστε το πακέτο pip και setuptools | 1
Include_symbols | Εγκατάσταση συμβόλων εντοπισμού σφαλμάτων (`*.pdb`) | 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. Εγκατάσταση χωρίς λήψη

Καθώς ορισμένες δυνατότητες της 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, το οποίο έχει τη δική του καταχώριση στο Προγράμματα και Δυνατότητες.

### 4.11.6. Εγκατάσταση Δυαδικών Αρχείων με Ελεύθερα Νήματα

Added in version 3.13.

Για να εγκαταστήσετε προ-κατασκευασμένα δυαδικά αρχεία με ενεργοποιημένο το free-threading (δείτε το PEP 703), θα πρέπει να επιλέξετε «Προσαρμοσμένη εγκατάσταση». Η δεύτερη σελίδα επιλογών περιλαμβάνει το πλαίσιο επιλογής «Λήψη δυαδικών αρχείων με ελεύθερο νήμα».

Η επιλογή αυτής της επιλογής θα κατεβάσει και θα εγκαταστήσει πρόσθετα δυαδικά αρχεία στην ίδια τοποθεσία με την κύρια εγκατάσταση Python. Το κύριο εκτελέσιμο αρχείο ονομάζεται `python3.13t.exe`, και άλλα δυαδικά αρχεία είτε λαμβάνουν μια κατάληξη `t` είτε μια πλήρη κατάληξη ABI. Τα αρχεία πηγαίου κώδικα Python και οι ενσωματωμένες εξαρτήσεις τρίτων μοιράζονται με την κύρια εγκατάσταση.

Η έκδοση με ελεύθερο νήμα καταχωρείται ως κανονική εγκατάσταση Python με την ετικέτα `3.13t` (με κατάληξη `-32` ή `-arm64` ως κανονική για αυτές τις πλατφόρμες). Αυτό επιτρέπει στα εργαλεία να την ανακαλύψουν και για το Διαχειριστής εγκατάστασης Python να υποστηρίζει το `py.exe -3.13t`. Σημειώστε ότι το πρόγραμμα εκκίνησης θα ερμηνεύσει το `py.exe -3` (ή ένα shebang `python3`) ως «την τελευταία εγκατάσταση 3.x», η οποία θα προτιμήσει τα δυαδικά αρχεία με ελεύθερο νήμα έναντι των κανονικών, ενώ το `py.exe -3.13` δεν θα το κάνει. Εάν χρησιμοποιείτε το σύντομο στυλ επιλογής, μπορεί να προτιμάτε να μην εγκαταστήσετε τα δυαδικά αρχεία με ελεύθερο νήμα αυτή τη στιγμή.

Για να καθορίσετε την επιλογή εγκατάστασης στη γραμμή εντολών, χρησιμοποιήστε `Include_freethreaded=1`. Δείτε Εγκατάσταση χωρίς λήψη για οδηγίες σχετικά με την προληπτική λήψη των πρόσθετων δυαδικών αρχείων για εγκατάσταση εκτός σύνδεσης. Οι επιλογές για την συμπερίληψη συμβόλων και δυαδικών αρχείων εντοπισμού σφαλμάτων ισχύουν επίσης για τις κατασκευές με ελεύθερο νήμα.

Τα δυαδικά αρχεία με ελεύθερο νήμα είναι επίσης διαθέσιμα στο nuget.org.

## 4.12. Το πρόγραμμα εκκίνησης Python για Windows (Απαρχαιωμένο)

Αποσύρθηκε στην έκδοση 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.16) θα έχετε παρατηρήσει ότι ξεκίνησε η Python 3.16 - για να εκκινήσετε την 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/python`

- `python`

Για παράδειγμα, εάν η πρώτη γραμμή του 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` δεν υπάρχει στο ενεργό περιβάλλον.

Η φόρμα `/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.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` έχει έναν προσδιορισμό έκδοσης που καθορίζει μόνο μια κύρια έκδοση.

Εάν δεν βρεθούν κριτήρια έκδοσης σε μια εντολή, η μεταβλητή περιβάλλοντος `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.12.5. Διαγνωστικά

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

### 4.12.6. Dry run

Εάν μια μεταβλητή περιβάλλοντος `PYLAUNCHER_DRYRUN` έχει οριστεί (σε οποιαδήποτε τιμή), το πρόγραμμα εκκίνησης θα δώσει την εντολή που θα εκτελούσε, αλλά δεν θα εκκινήσει πραγματικά την Python. Αυτό μπορεί να είναι χρήσιμο για εργαλεία που θέλουν να χρησιμοποιήσουν το πρόγραμμα εκκίνησης για να εντοπιστεί και να εκκινηθεί απευθείας η Python. Σημειώστε ότι η εντολή που είναι γραμμένη στην τυπική έξοδο κωδικοποιείται πάντα με χρήση UTF-8 και ενδέχεται να μην αποδίδεται σωστά στην κονσόλα.

### 4.12.7. Εγκατάσταση κατ” απαίτηση

Εάν μια μεταβλητή περιβάλλοντος `PYLAUNCHER_ALLOW_INSTALL` έχει οριστεί (σε οποιαδήποτε τιμή), και η ζητούμενη έκδοση Python δεν είναι εγκατεστημένη αλλά είναι διαθέσιμη στο Microsoft Store, το πρόγραμμα εκκίνησης θα επιχειρήσει να την εγκαταστήσει. Αυτό μπορεί να απαιτεί την ολοκλήρωση της αλληλεπίδρασης του χρήστη και ίσως χρειαστεί να εκτελέσετε ξανά την εντολή.

Μια πρόσθετη μεταβλητή `PYLAUNCHER_ALWAYS_INSTALL` αναγκάζει το πρόγραμμα εκκίνησης να προσπαθεί πάντα να εγκαταστήσει την Python, ακόμα κι αν εντοπιστεί. Αυτό προορίζεται κυρίως για δοκιμή (και θα πρέπει να χρησιμοποιείται με το `PYLAUNCHER_DRYRUN`).

### 4.12.8. Επιστρεφόμενοι κωδικοί

Οι ακόλουθοι κωδικοί εξόδου μπορεί να επιστραφούν από τον εκκινητή Python. Δυστυχώς, δεν υπάρχει τρόπος να διακρίνουμε αυτούς από τον κωδικό εξόδου της ίδιας της Python.

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

Όνομα | Τιμή | Περιγραφή
--- | --- | ---
RC_BAD_VENV_CFG | 107 | Βρέθηκε ένα `pyvenv.cfg` αλλά είναι κατεστραμμένο.
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 | Απαιτήθηκε ένα `pyvenv.cfg` αλλά δεν βρέθηκε.