4. Χρησιμοποιώντας Python στα Windows
*************************************

Αυτό το έγγραφο στοχεύει να δώσει μια επισκόπηση της συμπεριφοράς των
Windows που πρέπει να γνωρίζετε, όταν χρησιμοποιείτε την Python στα
Microsoft Windows.

Σε αντίθεση με τα περισσότερα συστήματα και υπηρεσίες Unix, τα Windows
δεν περιλαμβάνουν ενσωματωμένη εγκατάσταση Python που υποστηρίζεται
από το σύστημα. Για να είναι διαθέσιμη η Python, η ομάδα της CPython
έχει μεταγλωττίσει προγράμματα εγκατάστασης των Windows με κάθε έκδοση
για πολλά χρόνια. Αυτά τα προγράμματα εγκατάστασης προορίζονται κυρίως
για την προσθήκη μιας εγκατάστασης της Python ανά χρήστη, με τον
βασικό διερμηνέα και τη βιβλιοθήκη να χρησιμοποιούνται από έναν μόνο
χρήστη. Το πρόγραμμα εγκατάστασης είναι, επίσης σε θέση να
εγκαταστήσει για όλους τους χρήστες ενός μεμονωμένου μηχανήματος και
ένα ξεχωριστό αρχείο ZIP που είναι διαθέσιμο για τοπικές διανομές
εφαρμογής.

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

Υπάρχει ένας αριθμός διαφορετικών προγραμμάτων εγκατάστασης διαθέσιμα
για Windows, το καθένα με ορισμένα πλεονεκτήματα και μειονεκτήματα.

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

Το Το πακέτο Microsoft Store είναι μια απλή εγκατάσταση της Python που
είναι κατάλληλη για εκτέλεση scripts και πακέτων, και χρήση IDLE ή
άλλων περιβαλλόντων ανάπτυξης. Απαιτεί Windows 10 και νεότερη έκδοση,
αλλά μπορεί να εγκατασταθεί με ασφάλεια χωρίς να καταστρέψει άλλα
προγράμματα. Παρέχει επίσης πολλές βολικές εντολές για την εκκίνηση
της Python και των εργαλείων της.

Το Τα πακέτα nuget.org είναι ελαφριές εγκαταστάσεις που προορίζονται
για συστήματα συνεχούς ενοποίησης. Μπορεί να χρησιμοποιηθεί για τη
δημιουργία πακέτων Python ή την εκτέλεση scripts, αλλά δεν μπορεί να
ενημερωθεί και δεν διαθέτει εργαλεία διεπαφής χρήστη.

Το Το ενσωματωμένο πακέτο είναι ένα ελάχιστο πακέτο Python κατάλληλο
για ενσωμάτωση σε μεγαλύτερη εφαρμογή.


4.1. Το πλήρες πρόγραμμα εγκατάστασης
=====================================


4.1.1. Βήματα Εγκατάστασης
--------------------------

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

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

[εικόνα]

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

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

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

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

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

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

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

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

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

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

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

* Το Το πρόγραμμα εκκίνησης Python για Windows θα εγκατασταθεί στον
  κατάλογο των Windows

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

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

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

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


4.1.2. Κατάργηση του περιορισμού MAX_PATH
-----------------------------------------

Τα Windows έχουν ιστορικά περιορισμένα μήκη διαδρομής στους 260
χαρακτήρες. Αυτό σήμαινε ότι διαδρομές μεγαλύτερες από αυτό δεν θα
επιλύονταν και θα προέκυπταν σφάλματα.

Στις πιο πρόσφατες εκδόσεις των Windows, αυτός ο περιορισμός μπορεί να
επεκταθεί σε περίπου 32.000 χαρακτήρες. Ο διαχειριστής σας θα πρέπει
να ενεργοποιήσει την πολιτική ομάδας "Enable Win32 long paths", ή να
ορίσει "LongPathsEnabled" σε "1" το κλειδί μητρώου
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem".

Αυτό επιτρέπει στη συνάρτηση "open()", στο module "os" και στις
περισσότερες άλλες λειτουργίες διαδρομής να αποδέχονται και να
επιστρέφουν διαδρομές μεγαλύτερες από 260 χαρακτήρες.

Μετά την αλλαγή της παραπάνω επιλογής, δεν απαιτείται περαιτέρω
διαμόρφωση.

Άλλαξε στην έκδοση 3.6: Η υποστήριξη για μεγάλες διαδρομές ήταν
ενεργοποιημένη στην Python.


4.1.3. Εγκατάσταση χωρίς περιβάλλον διεπαφής χρήστη
---------------------------------------------------

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

To completely hide the installer UI and install Python silently, pass
the "/quiet" option. To skip past the user interaction but still
display progress and errors, pass the "/passive" option. The
"/uninstall" option may be passed to immediately begin removing Python
- no confirmation prompt will be displayed.

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

+-----------------------------+----------------------------------------+----------------------------+
| Όνομα                       | Περιγραφή                              | Προεπιλογή                 |
|=============================|========================================|============================|
| InstallAllUsers             | Εκτέλεση εγκατάστασης σε όλο το        | 0                          |
|                             | σύστημα.                               |                            |
+-----------------------------+----------------------------------------+----------------------------+
| TargetDir                   | Ο κατάλογος εγκατάστασης               | Επιλέχθηκε με βάση το      |
|                             |                                        | InstallAllUsers            |
+-----------------------------+----------------------------------------+----------------------------+
| DefaultAllUsersTargetDir    | Ο προεπιλεγμένος κατάλογος             | "%ProgramFiles%\Python     |
|                             | εγκατάστασης για τις εγκαταστάσεις     | X.Y" ή "%ProgramFiles(x86  |
|                             | όλων των χρηστών                       | )%\Python X.Y"             |
+-----------------------------+----------------------------------------+----------------------------+
| DefaultJustForMeTargetDir   | Ο προεπιλεγμένος κατάλογος             | "%LocalAppData%\Programs\  |
|                             | εγκατάστασης για εξατομικευμένες       | Python\PythonXY" ή "%Loca  |
|                             | εγκαταστάσεις                          | lAppData%\Programs\Python  |
|                             |                                        | \PythonXY-32" ή "%LocalAp  |
|                             |                                        | pData%\Programs\Python\Py  |
|                             |                                        | thonXY-64"                 |
+-----------------------------+----------------------------------------+----------------------------+
| DefaultCustomTargetDir      | Ο προεπιλεγμένος κατάλογος             | (empty)                    |
|                             | προσαρμοσμένης εγκατάστασης που        |                            |
|                             | εμφανίζεται στο UI                     |                            |
+-----------------------------+----------------------------------------+----------------------------+
| AssociateFiles              | Δημιουργήστε συσχετίσεις αρχείων εάν   | 1                          |
|                             | είναι επίσης εγκατεστημένο το          |                            |
|                             | πρόγραμμα εκκίνησης.                   |                            |
+-----------------------------+----------------------------------------+----------------------------+
| CompileAll                  | Μεταγλώττιση όλων των αρχείων ".py" σε | 0                          |
|                             | ".pyc".                                |                            |
+-----------------------------+----------------------------------------+----------------------------+
| PrependPath                 | Προετοιμάστε τους καταλόγους           | 0                          |
|                             | εγκατάστασης και Scripts στο "PATH"    |                            |
|                             | και προσθέστε το ".PY" στο "PATHEXT"   |                            |
+-----------------------------+----------------------------------------+----------------------------+
| AppendPath                  | Προσθήκη καταλόγων εγκατάστασης και    | 0                          |
|                             | Scripts σε "PATH" και προσθήκη ".PY"   |                            |
|                             | σε "PATHEXT"                           |                            |
+-----------------------------+----------------------------------------+----------------------------+
| Συντομεύσεις                | Δημιουργήστε συντομεύσεις για τον      | 1                          |
|                             | διερμηνέα, την τεκμηρίωση και το IDLE  |                            |
|                             | εάν είναι εγκατεστημένα.               |                            |
+-----------------------------+----------------------------------------+----------------------------+
| Include_doc                 | Εγκαταστήστε το εγχειρίδιο της Python  | 1                          |
+-----------------------------+----------------------------------------+----------------------------+
| Include_debug               | Εγκαταστήστε δυαδικά αρχεία εντοπισμού | 0                          |
|                             | σφαλμάτων                              |                            |
+-----------------------------+----------------------------------------+----------------------------+
| Include_dev                 | Εγκατάσταση κεφαλίδων και βιβλιοθηκών  | 1                          |
|                             | προγραμματιστή. Η παράλειψη αυτού      |                            |
|                             | μπορεί να οδηγήσει σε μη               |                            |
|                             | χρησιμοποιήσιμη εγκατάσταση.           |                            |
+-----------------------------+----------------------------------------+----------------------------+
| Include_exe                 | Εγκατάσταση "python.exe" και σχετικών  | 1                          |
|                             | αρχείων. Η παράλειψη αυτού μπορεί να   |                            |
|                             | οδηγήσει σε μη χρησιμοποιήσιμη         |                            |
|                             | εγκατάσταση.                           |                            |
+-----------------------------+----------------------------------------+----------------------------+
| Include_launcher            | Εγκαταστήστε το Το πρόγραμμα εκκίνησης | 1                          |
|                             | Python για Windows.                    |                            |
+-----------------------------+----------------------------------------+----------------------------+
| InstallLauncherAllUsers     | Εγκαθιστά το πρόγραμμα εκκίνησης για   | 1                          |
|                             | όλους του χρήστες. Επίσης, απαιτείται  |                            |
|                             | η ρύθμιση "Include_launcher" να τεθεί  |                            |
|                             | σε 1                                   |                            |
+-----------------------------+----------------------------------------+----------------------------+
| Include_lib                 | Εγκαταστήστε τυπικά module βιβλιοθήκης | 1                          |
|                             | και επέκτασης. Η παράλειψη αυτού       |                            |
|                             | μπορεί να οδηγήσει σε μη               |                            |
|                             | χρησιμοποιήσιμη εγκατάσταση.           |                            |
+-----------------------------+----------------------------------------+----------------------------+
| Include_pip                 | Εγκαταστήστε το πακέτο pip και         | 1                          |
|                             | setuptools                             |                            |
+-----------------------------+----------------------------------------+----------------------------+
| Include_symbols             | Εγκατάσταση συμβόλων εντοπισμού        | 0                          |
|                             | σφαλμάτων ("*.pdb")                    |                            |
+-----------------------------+----------------------------------------+----------------------------+
| Include_tcltk               | Εγκατάσταση υποστήριξης Tcl/Tk και     | 1                          |
|                             | IDLE                                   |                            |
+-----------------------------+----------------------------------------+----------------------------+
| Include_test                | Εγκαταστήστε την τυπική σουίτα δοκιμών | 1                          |
|                             | βιβλιοθήκης                            |                            |
+-----------------------------+----------------------------------------+----------------------------+
| Include_tools               | Εγκαταστήστε βοηθητικά scripts         | 1                          |
+-----------------------------+----------------------------------------+----------------------------+
| LauncherOnly                | Εγκαθιστά μόνο το πρόγραμμα εκκίνησης. | 0                          |
|                             | Αυτό θα παρακάμψει τις περισσότερες    |                            |
|                             | άλλες επιλογές.                        |                            |
+-----------------------------+----------------------------------------+----------------------------+
| SimpleInstall               | Απενεργοποιήστε τις περισσότερες       | 0                          |
|                             | διεπαφές εγκατάστασης                  |                            |
+-----------------------------+----------------------------------------+----------------------------+
| SimpleInstallDescription    | Ένα προσαρμοσμένο μήνυμα που θα        | (empty)                    |
|                             | εμφανίζεται όταν χρησιμοποιείται το    |                            |
|                             | απλοποιημένο περιβάλλον διεπαφής       |                            |
|                             | χρήστη.                                |                            |
+-----------------------------+----------------------------------------+----------------------------+

Για παράδειγμα, για να εγκαταστήσετε αθόρυβα μια προεπιλεγμένη
εγκατάσταση Python σε όλο το σύστημα, θα μπορούσατε να χρησιμοποιήσετε
την ακόλουθη εντολή (από μια ανυψωμένη γραμμή εντολών):

   python-3.9.0.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0

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

   python-3.9.0.exe InstallAllUsers=0 Include_launcher=0 Include_test=0
       SimpleInstall=1 SimpleInstallDescription="Just for me, no test suite."

(Λάβετε υπόψη ότι η παράλειψη της εφαρμογής εκκίνησης παραλείπει
επίσης συσχετίσεις αρχείων και συνίσταται μόνο για εγκαταστάσεις ανά
χρήστη όταν υπάρχει επίσης εγκατάσταση σε όλο το σύστημα που
περιλάμβανε τη λειτουργία εκκίνησης.)

Οι επιλογές που αναφέρονται παραπάνω μπορούν επίσης να παρέχονται σε
ένα αρχείο με το όνομα "unattend.xml" δίπλα στο εκτελέσιμο αρχείο.
Αυτό το αρχείο καθορίζει μια λίστα επιλογών και τιμών. Όταν μια τιμή
παρέχεται ως χαρακτηριστικό, θα μετατραπεί σε αριθμό εάν είναι
δυνατόν. Οι τιμές που παρέχονται ως κείμενο στοιχείου παραμένουν πάντα
ως συμβολοσειρές. Αυτό το αρχείο παραδείγματος ορίζει τις ίδιες
επιλογές με το προηγούμενο παράδειγμα:

   <Options>
       <Option Name="InstallAllUsers" Value="no" />
       <Option Name="Include_launcher" Value="0" />
       <Option Name="Include_test" Value="no" />
       <Option Name="SimpleInstall" Value="yes" />
       <Option Name="SimpleInstallDescription">Just for me, no test suite</Option>
   </Options>


4.1.4. Εγκατάσταση χωρίς λήψη
-----------------------------

Καθώς ορισμένες δυνατότητες της Python δεν περιλαμβάνονται στην αρχική
λήψη του προγράμματος εγκατάστασης, η επιλογή αυτών των δυνατοτήτων
ενδέχεται να απαιτεί σύνδεση στο διαδίκτυο.  Για να αποφευχθεί αυτή η
ανάγκη, όλα τα πιθανά στοιχεία μπορούν να ληφθούν κατ' απαίτηση για να
δημιουργηθεί μια πλήρης *διάταξη* που δεν θα απαιτεί πλέον μια σύνδεση
στο Διαδίκτυο, ανεξάρτητα από τις επιλεγμένες δυνατότητες. Λάβετε
υπόψη ότι αυτή η λήψη μπορεί να είναι μεγαλύτερη από την απαιτούμενη,
αλλά όπου πρόκειται να πραγματοποιηθεί μεγάλος αριθμός εγκαταστάσεων,
είναι πολύ χρήσιμο να έχετε ένα αντίγραφο προσωρινής αποθήκευσης.

Εκτελέστε την ακόλουθη εντολή από τη Γραμμή Εντολών για λήψη όλων των
πιθανών απαιτούμενων αρχείων.  Θυμηθείτε να αντικαταστήσετε το
"python-3.9.0.exe" για το πραγματικό όνομα του προγράμματος
εγκατάστασης και να δημιουργήσετε διατάξεις στους δικούς τους
καταλόγους για να αποφύγετε συγκρούσεις μεταξύ αρχείων με το ίδιο
όνομα.

   python-3.9.0.exe /layout [optional target directory]

Μπορείτε επίσης να καθορίσετε την επιλογή "/quiet" για απόκρυψη της
εμφάνισης προόδου.


4.1.5. Τροποποίηση εγκατάστασης
-------------------------------

Μόλις εγκατασταθεί η Python, μπορείτε να προσθέσετε ή να αφαιρέσετε
λειτουργίες μέσω του εργαλείου Προγράμματα και Δυνατότητες που είναι
μέρος των Windows. Επιλέξτε την καταχώρηση Python και επιλέξτε
"Κατάργηση εγκατάστασης/Αλλαγή" για να ανοίξετε το πρόγραμμα
εγκατάστασης σε λειτουργία συντήρησης.

Η "Αλλαγή" σάς επιτρέπει να προσθέτετε ή να αφαιρείτε λειτουργίες
τροποποιώντας τα πλαίσια ελέγχου - τα αμετάβλητα πλαίσια ελέγχου δεν
θα εγκαταστήσουν ή θα αφαιρέσουν τίποτα. Ορισμένες επιλογές δεν
μπορούν να αλλάξουν σε αυτήν τη λειτουργία, όπως ο κατάλογος
εγκατάστασης· για να τις τροποποιήσετε, θα χρειαστεί αν αφαιρέσετε
και, στη συνέχεια να επανεγκαταστήσετε ξανά την Python.

Η "Επιδιόρθωση" θα επαληθεύσει όλα τα αρχεία που πρέπει να
εγκατασταθούν χρησιμοποιώντας τις τρέχουσες ρυθμίσεις και θα
αντικαταστήσει όσα έχουν αφαιρεθεί ή τροποποιηθεί.

Η "Κατάργηση εγκατάστασης" θα καταργήσει πλήρως την Python, με
εξαίρεση το Το πρόγραμμα εκκίνησης Python για Windows, το οποίο έχει
τη δική του καταχώριση στο Προγράμματα και Δυνατότητες.


4.2. Το πακέτο Microsoft Store
==============================

Νέο στην έκδοση 3.7.2.

Το πακέτο Microsoft Store είναι ένας εύκολα εγκαταστημένος διερμηνέας
Python που προορίζεται κυρίως για διαδραστική χρήση για παράδειγμα,
από μαθητές.

Για να εγκαταστήσετε το πακέτο, βεβαιωθείτε ότι έχετε τις πιο
πρόσφατες ενημερώσεις των Windows 10 και πραγματοποιήστε αναζήτηση
στην εφαρμογή Microsoft Store για "Python 3.11". Βεβαιωθείτε ότι η
εφαρμογή που επιλέγετε έχει δημοσιευτεί από το Python Software
Foundation, και εγκαταστήστε την.

Προειδοποίηση:

  Η Python θα είναι πάντα διαθέσιμη δωρεάν στο Microsoft Store. Εάν
  σας ζητηθεί να πληρώσετε για αυτό, δεν έχετε επιλέξει το σωστό
  πακέτο.

Μετά την εγκατάσταση, η Python μπορεί να εκκινηθεί βρίσκοντας την στην
Έναρξη. Εναλλακτικά, θα είναι διαθέσιμη από οποιαδήποτε περίοδο
λειτουργίας της Γραμμής Εντολών ή PowerShell, πληκτρολογώντας
"python". Επιπλέον, το pip και το IDLE μπορούν να χρησιμοποιηθούν
πληκτρολογώντας "pip" ή "idle". Το IDLE μπορεί επίσης να βρεθεί στην
Έναρξη.

Και οι τρεις εντολές είναι επίσης διαθέσιμες με επιθήματα αριθμού
έκδοσης, για παράδειγμα, ως "python3.exe" και "python3.x.exe" καθώς
και το "python.exe" (όπου "3.x" είναι η συγκεκριμένη έκδοση που θέλετε
να εκκινήσετε, όπως 3.11). Ανοίξτε "Διαχείριση Ψευδωνύμων Εκτέλεσης
Εφαρμογών" μέσω της Έναρξης για να επιλέξετε ποια έκδοση της Python
σχετίζεται με κάθε εντολή. Συνίσταται να βεβαιωθείτε ότι τα "pip" και
"idle" είναι είναι συμβατά με οποιαδήποτε έκδοση της "python" έχει
επιλεγεί.

Τα εικονικά περιβάλλοντα μπορούν να δημιουργηθούν με το "python -m
venv" και να ενεργοποιηθούν και να χρησιμοποιηθούν κανονικά.

Εάν έχετε εγκαταστήσει μια άλλη έκδοση της Python και την προσθέσατε
στη μεταβλητή "PATH" σας, θα είναι διαθέσιμη ως "python.exe" και όχι
ως αυτή από το Microsoft Store. Για πρόσβαση στη νέα εγκατάσταση,
χρησιμοποιήστε το "python3.exe" ή "python3.x.exe".

Η εφαρμογή εκκίνησης "py.exe" θα εντοπίσει αυτήν την εγκατάσταση
Python, αλλά θα προτιμήσει εγκαταστάσεις από το παραδοσιακό πρόγραμμα
εγκατάστασης.

Για να καταργήσετε την Python, ανοίξτε τις Ρυθμίσεις και
χρησιμοποιήστε τις Εφαρμογές και δυνατότητες, ή βρείτε την Python στην
Έναρξη και κάντε δεξί κλικ για να επιλέξετε Κατάργηση εγκατάστασης. Η
απεγκατάσταση θα καταργήσει όλα τα πακέτα που εγκαταστήσατε απευθείας
σε αυτήν την εγκατάσταση Python, αλλά δεν θα καταργήσει κανένα
εικονικό περιβάλλον.


4.2.1. Γνωστά θέματα
--------------------


4.2.1.1. Ανακατεύθυνση τοπικών δεδομένων, μητρώου, και προσωρινών διαδρομών
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Λόγω περιορισμών στις εφαρμογές του Microsoft Store, τα Python scripts
ενδέχεται να μην έχουν πλήρη πρόσβαση εγγραφής σε κοινόχρηστες
τοποθεσίες όπως "TEMP" και το μητρώο. Αντίθετα, θα γράψει σε ένα
ιδιωτικό αντίγραφο. Εάν τα scripts σας πρέπει να τροποποιήσουν τις
κοινόχρηστες τοποθεσίες, θα χρειαστεί να εγκαταστήσετε το πλήρες
πρόγραμμα εγκατάστασης.

Κατά την εκτέλεση, η Python θα χρησιμοποιήσει ένα ιδιωτικό αντίγραφο
γνωστών φακέλων των Windows και του μητρώου. Για παράδειγμα, εάν η
μεταβλητή περιβάλλοντος "%APPDATA%" είναι "c:\Users\<user>\AppData\",
τότε όταν γράφεται σε "C:\Users\<user>\AppData\Local" θα γραφεί σε "C
:\Users\<user>\AppData\Local\Packages\PythonSoftwareFoundation.Python
.3.8_qbz5n2kfra8p0\LocalCache\Local\".

Κατά την ανάγνωση αρχείων, τα Windows θα επιστρέψουν το αρχείο από τον
ιδιωτικό φάκελο ή αν δεν υπάρχει, τον πραγματικό κατάλογο των Windows.
Για παράδειγμα, η ανάγνωση του "C:\Windows\System32" επιστρέφει τα
περιεχόμενα του "C:\Windows\System32" συν τα περιεχόμενα του
"C:\Program Files\WindowsApps\package_name\VFS\SystemX86".

Μπορείτε να βρείτε την πραγματική διαδρομή οποιουδήποτε υπάρχοντος
αρχείου χρησιμοποιώντας "os.path.realpath()":

   >>> import os
   >>> test_file = 'C:\\Users\\example\\AppData\\Local\\test.txt'
   >>> os.path.realpath(test_file)
   'C:\\Users\\example\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\\LocalCache\\Local\\test.txt'

Κατά την εγγραφή στο μητρώο των Windows, υπάρχουν οι ακόλουθες
συμπεριφορές:

* Η ανάγνωση από το "HKLM\\Software" επιτρέπεται και τα αποτελέσματα
  συγχωνεύονται με το αρχείο "registry.dat" στο πακέτο.

* Η εγγραφή στο "HKLM\\Software" δεν επιτρέπεται εάν υπάρχει το
  αντίστοιχο κλειδί/τιμή, π.χ. τροποποίηση υπαρχόντων κλειδιών.

* Η εγγραφή στο "HKLM\\Software" επιτρέπει εφόσον δεν υπάρχει
  αντίστοιχο κλειδί/τιμή στο πακέτο και ο χρήστης έχει τα σωστά
  δικαιώματα πρόσβασης.

For more detail on the technical basis for these limitations, please
consult Microsoft's documentation on packaged full-trust apps,
currently available at docs.microsoft.com/en-us/windows/msix/desktop
/desktop-to-uwp-behind-the-scenes


4.3. Τα πακέτα nuget.org
========================

Νέο στην έκδοση 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.


4.4. Το ενσωματωμένο πακέτο
===========================

Νέο στην έκδοση 3.5.

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

Όταν εξάγεται, η ενσωματωμένη διανομή απομονώνεται (σχεδόν) πλήρως από
το σύστημα του χρήστη, συμπεριλαμβανομένων μεταβλητών περιβάλλοντος,
ρυθμίσεων μητρώου συστήματος και εγκατεστημένων πακέτων. Η τυπική
βιβλιοθήκη περιλαμβάνεται ως προ-μεταγλωττισμένα και βελτιστοποιημένα
αρχεία ".pyc" σε ένα ZIP και "python3.dll", "python37.dll",
"python.exe" και "pythonw.exe" παρέχονται όλα. Το Tcl/tk
(συμπεριλαμβανομένων όλων των εξαρτημένων, όπως το Idle), το pip και η
τεκμηρίωση Python δεν συμπεριλαμβάνονται.

Σημείωση:

  The embedded distribution does not include the Microsoft C Runtime
  and it is the responsibility of the application installer to provide
  this. The runtime may have already been installed on a user's system
  previously or automatically via Windows Update, and can be detected
  by finding "ucrtbase.dll" in the system directory.

Τα πακέτα τρίτων θα πρέπει να εγκατασταθούν από το πρόγραμμα
εγκατάστασης της εφαρμογής παράλληλα με την ενσωματωμένη διανομή. Η
χρήση pip για τη διαχείριση εξαρτήσεων όπως για μια κανονική
εγκατάσταση Python δεν υποστηρίζεται με αυτήν τη διανομή, αν και με
λίγη προσοχή μπορεί να είναι δυνατό, να συμπεριληφθεί και να
χρησιμοποιηθεί το pip για αυτόματες ενημερώσεις. Γενικά, τα πακέτα
τρίτων θα πρέπει να αντιμετωπίζονται ως μέρος της εφαρμογής
("vendoring"), έτσι ώστε ο προγραμματιστής να μπορεί να διασφαλίσει τη
συμβατότητα με νεότερες εκδόσεις προτού παρέχει ενημερώσεις στους
χρήστες.

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


4.4.1. Εφαρμογή Python
----------------------

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

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

Η απλούστερη προσέγγιση είναι να παρέχετε ένα αρχείο δέσμης ή μια
συντόμευση που δημιουργείται που καλεί απευθείας το "python.exe" ή το
"pythonw.exe" με τα απαιτούμενα ορίσματα γραμμής εντολών. Σε αυτήν την
περίπτωση, η εφαρμογή φαίνεται να είναι Python και όχι το πραγματικό
της όνομα, και οι χρήστες μπορεί να έχουν πρόβλημα να το ξεχωρίσουν
από άλλες διεργασίες Python που εκτελούνται ή συσχετίσεις αρχείων.

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


4.4.2. Ενσωμάτωση Python
------------------------

Οι εφαρμογές που είναι γραμμένες σε εγγενή κώδικα απαιτούν συχνά
κάποια μορφή scripting γλώσσας και η ενσωματωμένη διανομή Python
μπορεί να χρησιμοποιηθεί για αυτόν τον σκοπό. Γενικά, η πλειονότητα
της εφαρμογής είναι σε εγγενή κώδικα και κάποιο μέρος είτε θα καλέσει
το "python.exe" ή θα χρησιμοποιήσει απευθείας το "python3.dll". Και
στις δύο περιπτώσεις, η εξαγωγή της ενσωματωμένης διανομής σε έναν
υποκατάλογο της εγκατάστασης της εφαρμογής αρκεί για να παρέχει έναν
διερμηνέα Python με δυνατότητα φόρτωσης.

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


4.5. Εναλλακτικά πακέτα
=======================

Εκτός από την τυπική διανομή CPython, υπάρχουν τροποποιημένα πακέτα
που περιλαμβάνουν πρόσθετες λειτουργίες.  Ακολουθεί μια λίστα με
δημοφιλείς εκδόσεις και τα βασικά χαρακτηριστικά τους:

ActivePython
   Πρόγραμμα εγκατάστασης με συμβατότητα πολλαπλών πλατφορμών,
   τεκμηρίωση, PyWin32

Anaconda
   Δημοφιλείς επιστημονικά modules (όπως το numpy, scipy και pandas)
   και ο διαχειριστής πακέτων "conda".

Enthought Deployment Manager
   "Η επόμενη γενικά Διαχειριστή Περιβάλλοντος και Πακέτων Python".

   Προηγουμένως, η Enthought παρείχε το Canopy, αλλά έφτασε στο τέλος
   της ζωής του το 2016.

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

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


4.6. Διαμόρφωση Python
======================

Για να εκτελέσετε εύκολα την Python από μια γραμμή εντολών, μπορείτε
να εξετάσετε το ενδεχόμενο να αλλάξετε ορισμένες προεπιλεγμένες
μεταβλητές περιβάλλοντός στα Windows.  Ενώ το πρόγραμμα εγκατάστασης
παρέχει μια επιλογή για τη διαμόρφωση των μεταβλητών PATH και PATHTEXT
για εσάς, αυτή είναι αξιόπιστη μόνο για μια μεμονωμένη εγκατάσταση σε
όλο το σύστημα.  Εάν χρησιμοποιείτε τακτικά πολλές εκδόσεις της
Python, σκεφτείτε να χρησιμοποιήσετε το Το πρόγραμμα εκκίνησης Python
για Windows.


4.6.1. Excursus: Ρύθμιση μεταβλητών περιβάλλοντος
-------------------------------------------------

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

Για να ορίσετε προσωρινά μεταβλητές περιβάλλοντος, ανοίξτε τη γραμμή
εντολών και χρησιμοποιήστε την εντολή **set**:

   C:\>set PATH=C:\Program Files\Python 3.9;%PATH%
   C:\>set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
   C:\>python

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

Η συμπερίληψη του ονόματος της μεταβλητής μέσα στα σημάδια ποσοστού θα
επεκταθεί στην υπάρχουσα τιμή, επιτρέποντας σας να προσθέσετε τη νέα
σας τιμή είτε στην αρχή είτε στο τέλος. Τροποποιώντας το "PATH"
προσθέτοντας τον κατάλογο που περιέχει **python.exe** στην αρχή είναι
ένας κοινός τρόπος για να διασφαλιστεί ότι η σωστή έκδοση της Python
θα ξεκινήσει.

Για να τροποποιήσετε μόνιμα τις προεπιλεγμένες μεταβλητές
περιβάλλοντος, κάντε κλικ στην Έναρξη και αναζητήστε 'επεξεργασία
μεταβλητών περιβάλλοντος', ή ανοίξτε τις Ιδιότητες Συστήματος,
Advanced system settings και κάντε κλικ στο κουμπί Environment
Variables. Σε αυτό το παράθυρο διαλόγου, μπορείτε να προσθέσετε ή να
τροποποιήσετε μεταβλητές χρήστη και συστήματος. Για να αλλάξετε τις
μεταβλητές συστήματος, χρειάζεστε απεριόριστη πρόσβαση στον υπολογιστή
σας (δηλαδή δικαιώματα διαχειριστή).

Σημείωση:

  Τα Windows θα συνενώσουν τις μεταβλητές χρήστη *μετά* τις μεταβλητές
  συστήματος, οι οποίες ενδέχεται να προκαλέσουν απροσδόκητα
  αποτελέσματα κατά την τροποποίηση του "PATH".Η μεταβλητή
  "PYTHONPATH" χρησιμοποιείται από όλες τις εκδόσεις της Python,
  επομένως δεν θα πρέπει να τη ρυθμίσετε μόνιμα εκτός εάν οι διαδρομές
  που αναφέρονται περιλαμβάνουν μόνο κώδικα που είναι συμβατός με όλες
  τις εγκατεστημένες εκδόσεις Python.

Δείτε επίσης:

  https://docs.microsoft.com/en-us/windows/win32/procthread
  /environment-variables
     Επισκόπηση των μεταβλητών περιβάλλοντος στα Windows

  https://docs.microsoft.com/en-us/windows-server/administration
  /windows-commands/set_1
     Η εντολή "set" για την προσωρινή τροποποίηση μεταβλητών
     περιβάλλοντος

  https://docs.microsoft.com/en-us/windows-server/administration
  /windows-commands/setx
     Η εντολή "setx", για μόνιμη τροποποίηση μεταβλητών περιβάλλοντος


4.6.2. Εύρεση του εκτελέσιμου Python
------------------------------------

Άλλαξε στην έκδοση 3.5.

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

Στην πρώτη σελίδα του προγράμματος εγκατάστασης, μπορεί να επιλεγεί
μια επιλογή με την ένδειξη "Add Python to PATH" για να προσθέσει το
πρόγραμμα εγκατάστασης τη θέση εγκατάστασης στο "PATH".  Η θέση του
φακέλου του "Scripts\" προστίθεται επίσης. Αυτό σας επιτρέπει να
πληκτρολογήσετε **python** για να εκτελέσετε τον διερμηνέα και **pip**
για το πακέτο. Έτσι, μπορείτε να εκτελέσετε τα script σας με επιλογές
γραμμής εντολών, δείτε την τεκμηρίωση Command line.

Εάν δεν ενεργοποιήσετε αυτήν την επιλογή κατά την εγκατάσταση,
μπορείτε πάντα να εκτελέσετε ξανά το πρόγραμμα εγκατάστασης, να
επιλέξετε Τροποποίηση, και να το ενεργοποιήσετε.  Εναλλακτικά,
μπορείτε να τροποποιήσετε μη αυτόματα το "PATH" χρησιμοποιώντας τις
οδηγίες στο Excursus: Ρύθμιση μεταβλητών περιβάλλοντος. Πρέπει να
ρυθμίσετε την μεταβλητή περιβάλλοντος "PATH", ώστε να περιλαμβάνει τον
κατάλογο της εγκατάστασης Python, οριοθετημένος με ένα ερωτηματικό από
άλλες καταχωρήσεις.  Ένα παράδειγμα μεταβλητής θα μπορούσε να μοιάζει
με αυτό (υποθέτοντας ότι οι δύο πρώτες εγγραφές υπήρχαν ήδη):

   C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Python 3.9


4.7. Λειτουργία UTF-8
=====================

Νέο στην έκδοση 3.7.

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

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

Μπορείτε να χρησιμοποιήσετε τη Python UTF-8 Mode για να αλλάξετε την
προεπιλεγμένη κωδικοποίηση κειμένου σε UTF-8. Μπορείτε να
ενεργοποιήσετε το Python UTF-8 Mode μέσω της επιλογής γραμμής εντολών
"-X utf8" ή της μεταβλητής περιβάλλοντος "PYTHONUTF8=1".  Βλέπε
"PYTHONUTF8" για την ενεργοποίηση της λειτουργίας UTF-8 και Excursus:
Ρύθμιση μεταβλητών περιβάλλοντος για τον τρόπο τροποποίηση μεταβλητών
περιβάλλοντος.

Όταν η Python UTF-8 Mode είναι ενεργοποιημένη, μπορείτε ακόμα να
χρησιμοποιήσετε την κωδικοποίηση συστήματος (τη σελίδα κώδικα ANSI)
μέσω του κωδικοποιητή "mbcs".

Λάβετε υπόψη ότι η προσθήκη "PYTHONUTF8=1" στις προεπιλεγμένες
μεταβλητές περιβάλλοντος θα επηρεάσει όλες τις εφαρμογές Python 3.7+
στο σύστημα σας. Εάν έχετε οποιεσδήποτε εφαρμογές Python 3.7+ που
βασίζονται στην κωδικοποίηση του συστήματος παλαιού τύπου, συνιστάται
να ορίσετε το περιβάλλον μεταβλητή προσωρινά ή χρησιμοποιήστε την
επιλογή γραμμής εντολών "-X utf8" .

Σημείωση:

  Ακόμη και όταν η λειτουργία UTF-8 είναι απενεργοποιημένη, η Python
  χρησιμοποιεί το UTF-8 από προεπιλογή στα Windows για:

  * I/O κονσόλας με τυπικό I/O (δείτε το **PEP 528** για
    λεπτομέρειες).

  * Το *filesystem encoding* (δείτε το **PEP 529** για λεπτομέρειες).


4.8. Το πρόγραμμα εκκίνησης Python για Windows
==============================================

Νέο στην έκδοση 3.3.

Το πρόγραμμα εκκίνησης Python για Windows είναι ένα βοηθητικό
πρόγραμμα που βοηθά στον εντοπισμό και την εκτέλεση διαφορετικών
εκδόσεων Python.  Επιτρέπει στα scripts (ή στη γραμμή εντολών) να
υποδείξουν μια προτίμηση για μια συγκεκριμένη έκδοση Python και θα
εντοπίσουν και θα εκτελέσουν αυτήν την έκδοση.

Σε αντίθεση με τη μεταβλητή "PATH", το πρόγραμμα εκκίνησης θα επιλέξει
σωστά την καταλληλότερη έκδοση της Python. Θα προτιμήσει τις
εγκαταστάσεις ανά χρήστη έναντι των εγκαταστάσεων σε όλο το σύστημα
και τις παραγγελίες ανά έκδοση γλώσσας αντί να χρησιμοποιεί την πιο
πρόσφατα εγκατεστημένη έκδοση.

Το πρόγραμμα εκκίνησης προσδιορίστηκε αρχικά στο **PEP 397**.


4.8.1. Ξεκινώντας
-----------------


4.8.1.1. Από τη γραμμή εντολών
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Άλλαξε στην έκδοση 3.6.

Εγκαταστάσεις σε όλο το σύστημα της Python 3.3 και νεότερες εκδόσεις
θα τοποθετήσουν το πρόγραμμα εκκίνησης στο "PATH". Το πρόγραμμα
εκκίνησης είναι συμβατό με όλες τις διαθέσιμες εκδόσεις της Python,
επομένως δεν έχει σημασία ποια έκδοση είναι εγκατεστημένη. Για να
ελέγξτε ότι το πρόγραμμα εκκίνησης είναι διαθέσιμο, εκτελέστε την
ακόλουθη εντολή στη Γραμμή Εντολών:

   py

Θα πρέπει να διαπιστώσετε ότι η πιο πρόσφατη έκδοση της Python που
έχετε εγκαταστήσει έχει ξεκινήσει - μπορεί να βγει κανονικά και τυχόν
πρόσθετα ορίσματα γραμμής εντολών που καθορίστηκαν θα σταλούν
απευθείας στην Python.

Εάν έχετε εγκαταστήσει πολλές εκδόσεις της Python (π.χ. 3.7 και 3.11)
θα έχετε παρατηρήσει ότι ξεκίνησε η Python 3.11 - για να εκκινήσετε
την Python 3.7, δοκιμάστε την εντολή:

   py -3.7

Εάν θέλετε την πιο πρόσφατη έκδοση της Python 2 που έχετε
εγκαταστήσει, δοκιμάστε την εντολή:

   py -2

Εάν δείτε το ακόλουθο σφάλμα, δεν έχετε εγκατεστημένο το πρόγραμμα
εκκίνησης:

   'py' is not recognized as an internal or external command,
   operable program or batch file.

Η εντολή:

   py --list

εμφανίζει τις τρέχουσες εγκατεστημένες εκδόσεις της Python.

Το όρισμα "-x.y" είναι η σύντομη μορφή του ορίσματος "-V:Company/Tag",
το οποίο επιτρέπει την επιλογή ενός συγκεκριμένου χρόνου εκτέλεσης
Python, συμπεριλαμβανομένων εκείνων που μπορεί να έχουν προέλθει από
κάπου διαφορετικά από το python.org. Οποιοσδήποτε χρόνος εκτέλεσης
έχει καταχωρηθεί ακολουθώντας το **PEP 514** θα είναι ανιχνεύσιμος. Η
εντολή "--list" παραθέτει όλους τους διαθέσιμους χρόνους εκτέλεσης
χρησιμοποιώντας τη μορφή "-V:".

Όταν χρησιμοποιείται το όρισμα "-V:", ο καθορισμός της Εταιρείας θα
περιορίσει την επιλογή σε χρόνους εκτέλεσης από αυτόν τον πάροχο, ενώ
ο καθορισμός μόνο της ετικέτας θα επιλέγεται από όλους τους παρόχους.
Σημειώστε ότι η παράλειψη της καθέτου (slash) συνεπάγεται μια ετικέτα:

   # Select any '3.*' tagged runtime
   py -V:3

   # Select any 'PythonCore' released runtime
   py -V:PythonCore/

   # Select PythonCore's latest Python 3 runtime
   py -V:PythonCore/3

Η σύντομη μορφή του ορίσματος ("-3") επιλέγει μόνο από τις βασικές
εκδόσεις Python, και όχι άλλες διανομές. Ωστόσο, η μεγαλύτερη μορφή
("-V:3") θα επιλέξει από οποιαδήποτε.

Η εταιρεία έχει αντιστοιχιστεί στην πλήρη συμβολοσειρά, χωρίς διάκριση
πεζών-κεφαλαίων. Η ετικέτα αντιστοιχίζεται είτε με την πλήρη
συμβολοσειρά είτε με ένα πρόθεμα, με την προϋπόθεση ότι ο επόμενος
χαρακτήρας είναι μια τελεία ή μια παύλα. Αυτό επιτρέπει την
αντιστοίχιση του "-V:3.1" με το "3.1-32", αλλά όχι "3.10". Οι ετικέτες
ταξινομούνται με αριθμητική σειρά ("3.10" είναι νεότερο από "3.1"),
αλλά συγκρίνονται χρησιμοποιώντας κείμενο ("-V:3.01" δεν ταιριάζει με
το "3.1").


4.8.1.2. Εικονικά Περιβάλλοντα
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Νέο στην έκδοση 3.5.

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


4.8.1.3. Από ένα script
~~~~~~~~~~~~~~~~~~~~~~~

Ας δημιουργήσουμε ένα δοκιμαστικό Python script - δημιουργήστε ένα
αρχείο που ονομάζεται "hello.py" με τα ακόλουθα περιεχόμενα

   #! python
   import sys
   sys.stdout.write("hello from Python %s\n" % (sys.version,))

Από τον κατάλογο στον οποίο ζει το hello.py, εκτελέστε την εντολή:

   py hello.py

Θα πρέπει να παρατηρήσετε ότι ο αριθμός έκδοσης της τελευταίας
εγκατάστασης Python 2.x έχει εκτυπωθεί.  Τώρα δοκιμάστε να αλλάξετε
την πρώτη γραμμή σε:

   #! python3

Η επανεκτέλεση της εντολής θα πρέπει τώρα να εκτυπώσει τις πιο
πρόσφατες πληροφορίες Python 3.x. Όπως και με τα παραπάνω παραδείγματα
γραμμής εντολών, μπορείτε να καθορίσετε έναν πιο σαφή προσδιορισμό
έκδοσης.  Υποθέτοντας ότι έχετε εγκαταστήσει την Python 3.7, δοκιμάστε
να αλλάξετε την πρώτη γραμμή σε "#! python3.7" και θα πρέπει να βρείτε
τυπωμένες τις πληροφορίες της έκδοσης 3.7.

Λάβετε υπόψη ότι σε αντίθεση με τη διαδραστική χρήση, ένα γυμνό
"python" θα χρησιμοποιεί την πιο πρόσφατη έκδοση της Python 2.x που
έχετε εγκαταστήσει.  Αυτή είναι μια συμβατότητα προς τα πίσω και για
συμβατότητα με Unix, όπου συνήθως αναφέρεται η εντολή "python" στην
Python 2.


4.8.1.4. Από συσχετίσεις αρχείων
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Το πρόγραμμα εκκίνησης θα έπρεπε να είχε συσχετιστεί με αρχεία Python
(δηλαδή αρχεία ".py", ".pyw", ".pyc") όταν εγκαταστάθηκε.  Αυτό
σημαίνει ότι όταν κάνετε διπλό κλικ σε ένα από αυτά τα αρχεία από τον
Windows Explorer, το πρόγραμμα εκκίνησης θα χρησιμοποιηθεί και
επομένως μπορείτε να χρησιμοποιήσετε τις ίδιες ευκολίες που
περιγράφονται παραπάνω για να έχετε το script να καθορίζει ποια έκδοση
θα χρησιμοποιηθεί.

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


4.8.2. Γραμμές Shebang
----------------------

Εάν η πρώτη γραμμή ενός script αρχείου ξεκινά με "#!", είναι γνωστή ως
γραμμή "shebang".  Το Linux και άλλα Unix λειτουργικά συστήματα έχουν
εγγενή υποστήριξη για τέτοιες γραμμές και χρησιμοποιούνται συνήθως σε
τέτοιες γραμμές συστήματα για να υποδείξουν πως πρέπει να εκτελεστεί
ένα script.  Αυτό το πρόγραμμα εκκίνησης επιτρέπει τη χρήση των ίδιων
εγκαταστάσεων με Python scripts στα Windows και τα παραπάνω
παραδείγματα δείχνουν τη χρήση τους.

Για να επιτραπεί στις γραμμές shebang σε Python scripts να είναι
φορητές μεταξύ Unix και Windows, αυτό το πρόγραμμα εκκίνησης
υποστηρίζει έναν αριθμό 'εικονικών' εντολών για να καθορίσει ποιος
διερμηνέας θα χρησιμοποιηθεί.  Οι υποστηριζόμενες εικονικές εντολές
είναι:

* "/usr/bin/env"

* "/usr/bin/python"

* "/usr/local/bin/python"

* "python"

Για παράδειγμα, εάν η πρώτη γραμμή του script σας ξεκινάει με

   #! /usr/bin/python

Η προεπιλεγμένη Python θα εντοπιστεί και θα χρησιμοποιηθεί.  Καθώς
πολλά Python scripts που έχουν γραφτεί για να λειτουργούν στο Unix θα
έχουν ήδη αυτήν την γραμμή, θα πρέπει να βρείτε ότι αυτά τα scripts
μπορούν να χρησιμοποιηθούν από το πρόγραμμα εκκίνησης χωρίς
τροποποίηση.  Εάν γράφετε ένα νέο script στα Windows το οποίο ελπίζετε
ότι θα είναι χρήσιμο στο Unix, θα πρέπει να χρησιμοποιήσετε μια από
τις γραμμές shebang που ξεκινά με "/usr".

Οποιαδήποτε από τις παραπάνω εικονικές εντολές μπορεί να προστεθεί με
μια ρητή έκδοση (είτε μόνο η κύρια έκδοση, είτε η κύρια και
δευτερεύουσα έκδοση). Επιπλέον, η έκδοση 32-bit μπορεί να ζητηθεί
προσθέτοντας "-32" μετά τη δευτερεύουσα έκδοση. Δηλαδή
"/usr/bin/python3.7-32" θα ζητήσει τη χρήση της python 3.7.

Νέο στην έκδοση 3.7: Ξεκινώντας με το πρόγραμμα εκκίνησης Python 3.7,
είναι δυνατό να ζητηθεί η έκδοση 64-bit με το επίθημα "-64". Επιπλέον,
είναι δυνατό να καθοριστεί μια κύρια έκδοση και μια αρχιτεκτονική
χωρίς  δευτερεύοντα (δηλαδή "/usr/bin/python3-64").

Άλλαξε στην έκδοση 3.11: Το επίθημα "-64" έχει καταργηθεί, και τώρα
υποδηλώνει "οποιαδήποτε αρχιτεκτονική που δεν είναι αποδεδειγμένα
i386/32-bit". Για να ζητήσετε ένα συγκεκριμένο περιβάλλον,
χρησιμοποιήστε το νέο "-V:*TAG*" όρισμα με την πλήρη ετικέτα.

Η φόρμα "/usr/bin/env" της γραμμής shebang έχει μια επιπλέον ειδική
ιδιότητα. Πριν αναζητήσετε εγκατεστημένους διερμηνείς Python, αυτή η
φόρμα θα αναζητήσει στο εκτελέσιμο αρχείο "PATH" για ένα εκτελέσιμο
αρχείο Python που ταιριάζει με το όνομα που παρέχεται ως το πρώτο
όρισμα. Αυτό αντιστοιχεί στη συμπεριφορά του προγράμματος Unix "env",
το οποίο εκτελεί μια αναζήτηση "PATH". Εάν δεν μπορεί να βρεθεί ένα
εκτελέσιμο αρχείο που ταιριάζει με το πρώτο όρισμα μετά την εντολή
"env", αλλά το όρισμα ξεκινά με "python", ο χειρισμός του θα γίνει
όπως περιγράφεται για τις άλλες εικονικές εντολές. Η μεταβλητή
περιβάλλοντος "PYLAUNCHER_NO_SEARCH_PATH" μπορεί να οριστεί (σε
οποιαδήποτε τιμή) για να παραλείψει αυτήν την αναζήτηση για "PATH".

Οι γραμμές Shebang που δεν ταιριάζουν με κανένα από αυτά τα μοτίβα
αναζητούνται στην ενότητα "[commands]" του προγράμματος εκκίνησης .INI
file. Αυτό μπορεί να χρησιμοποιηθεί για τον χειρισμό ορισμένων εντολών
με τρόπο που να έχει νόημα για το σύστημά σας. Το όνομα της εντολής
πρέπει να είναι ένα μεμονωμένο όρισμα (δεν υπάρχουν κενά στο
εκτελέσιμο αρχείο shebang) και η τιμή που αντικαθίσταται είναι η
πλήρης διαδρομή προς το εκτελέσιμο (τα πρόσθετα ορίσματα που
καθορίζονται στο .INI θα αναφέρονται ως μέρος του ονόματος αρχείου).

   [commands]
   /bin/xpython=C:\Program Files\XPython\python.exe

Οποιεσδήποτε εντολές που δεν βρίσκονται στο αρχείο .INI
αντιμετωπίζονται ως εκτελέσιμες διαδρομές **Windows** που είναι
απόλυτες ή σχετικές με τον κατάλογο που περιέχει το script αρχείο.
Αυτό είναι μια ευκολία για σενάρια μόνο για Windows, όπως αυτά που
δημιουργούνται από ένα πρόγραμμα εγκατάστασης, δεδομένου ότι η
συμπεριφορά δεν είναι συμβατή με κελύφη τύπου Unix. Αυτές οι διαδρομές
μπορεί να αναφέρονται και μπορεί να περιλαμβάνουν πολλαπλά ορίσματα,
μετά τη διαδρομή προς το script και θα προσαρτηθούν τυχόν πρόσθετα
ορίσματα.


4.8.3. Ορίσματα στις γραμμές shebang
------------------------------------

Οι γραμμές shebang μπορούν επίσης να καθορίσουν πρόσθετες επιλογές που
θα μεταβιβαστούν στον διερμηνέα Python.  Για παράδειγμα, εάν έχετε μια
γραμμή shebang:

   #! /usr/bin/python -v

Στη συνέχεια, η Python θα ξεκινήσει με την επιλογή "-v"


4.8.4. Προσαρμογή
-----------------


4.8.4.1. Προσαρμογή μέσω αρχείων INI
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Θα γίνει αναζήτηση δύο αρχείων .ini από το πρόγραμμα εκκίνησης -
"py.ini" στον κατάλογο δεδομένων εφαρμογής του τρέχοντος χρήστη
("%LOCALAPPDATA%" ή "$env:LocalAppData") και "py.ini" στον ίδιο
κατάλογο με το πρόγραμμα εκκίνησης. Τα ίδια αρχεία .ini
χρησιμοποιούνται τόσο για την έκδοση 'κονσόλας' του προγράμματος
εκκίνησης (π.χ. py.exe) όσο και για την έκδοση 'windows' (δηλ.
pyw.exe).

Η προσαρμογή που καθορίζεται στον "κατάλογο εφαρμογών" θα έχει
προτεραιότητα έναντι αυτής που βρίσκεται δίπλα στο εκτελέσιμο αρχείο,
επομένως ένας χρήστης, ο οποίος ενδέχεται να μην έχει πρόσβαση
εγγραφής στο αρχείο .ini δίπλα στο πρόγραμμα εκκίνησης, μπορεί να
παρακάμψει εντολές σε αυτό το καθολικό .ini αρχείο.


4.8.4.2. Προσαρμογή προεπιλεγμένων εκδόσεων Python
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Σε ορισμένες περιπτώσεις, ένας προσδιορισμός έκδοσης μπορεί να
συμπεριληφθεί σε μια εντολή για να υπαγορεύσει ποια έκδοση της Python
θα χρησιμοποιηθεί από την εντολή. Ένας προσδιοριστής έκδοσης ξεκινά με
τον αριθμό κύριας έκδοσης και μπορεί προαιρετικά να ακολουθείται από
μια τελεία ('.') και ένας δευτερεύων προσδιοριστής έκδοσης. Επιπλέον,
είναι δυνατό να καθοριστεί εάν θα ζητηθεί υλοποίηση 32 ή 64 bit
προσθέτοντας "-32" ή "-64".

Για παράδειγμα, μια γραμμή shebang του "#!python" δεν έχει
προσδιοριστικό έκδοσης, ενώ το "#!python3" έχει έναν προσδιορισμό
έκδοσης που καθορίζει μόνο μια κύρια έκδοση.

Εάν δεν βρεθούν κριτήρια έκδοσης σε μια εντολή, η μεταβλητή
περιβάλλοντος "PY_PYTHON" μπορεί να οριστεί για να καθορίσει τον
προσδιορισμό της προεπιλεγμένης έκδοσης. Εάν δεν έχει οριστεί, η
προεπιλογή είναι "3", "3.7", "3.7-32" ή "3.7-64". (Σημειώστε ότι η
επιλογή "-64" είναι διαθέσιμη μόνο με το πρόγραμμα εκκίνησης που
περιλαμβάνεται στην Python 3.7 ή νεότερη έκδοση.)

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

Σε Windows 64-bit με εγκατεστημένες υλοποιήσεις 32-bit και 64-bit της
ίδιας (κύριας.δευτερεύουσας) έκδοσης Python, η έκδοση 64-bit θα
προτιμάται πάντα. Αυτό θα ισχύει τόσο για 32-bit όσο και για 64-bit
υλοποιήσεις του προγράμματος εκκίνησης - ένα πρόγραμμα εκκίνησης
32-bit θα προτιμήσει να εκτελέσει μια εγκατάσταση Python 64-bit της
καθορισμένης έκδοσης, εάν είναι διαθέσιμη. Αυτό είναι έτσι, ώστε η
συμπεριφορά του προγράμματος εκκίνησης μπορεί να προβλεφθεί
γνωρίζοντας μόνο ποιες εκδόσεις είναι εγκατεστημένες στον υπολογιστή
και χωρίς να λαμβάνεται υπόψη η σειρά με την οποία εγκαταστάθηκαν
(δηλαδή, χωρίς να γνωρίζουμε εάν μια έκδοση 32 ή 64-bit της Python και
το αντίστοιχο πρόγραμμα εκκίνησης εγκαταστάθηκε τελευταίο). Όπως
σημειώθηκε παραπάνω, ένα προαιρετικό επίθημα "-32" ή "-64" μπορεί να
χρησιμοποιηθεί σε έναν προσδιοριστή έκδοσης για την αλλαγή αυτής της
συμπεριφοράς.

Παραδείγματα:

* Εάν δεν οριστούν σχετικές επιλογές, οι εντολές "python" και
  "python2" θα χρησιμοποιήσουν την πιο πρόσφατη εγκατεστημένη έκδοση
  Python 2.x και η εντολή "python3" θα χρησιμοποιήσει την πιο πρόσφατη
  εγκατεστημένη Python 3.x.

* Η εντολή "python3.7" δεν θα συμβουλευτεί καμία απολύτως επιλογή
  καθώς οι εκδόσεις είναι πλήρως καθορισμένες.

* Εάν "PY_PYTHON=3", οι εντολές "python" και "python3" θα
  χρησιμοποιούν και οι δύο την πιο πρόσφατη εγκατεστημένη έκδοση
  Python 3.

* Εάν "PY_PYTHON=3.7-32", η εντολή "python" θα χρησιμοποιήσει την
  υλοποίηση 32-bit του 3.7 ενώ η εντολή "python3" θα χρησιμοποιήσει
  την πιο πρόσφατη εγκατεστημένη Python (Το PY_PYTHON δεν θεωρήθηκε
  καθόλου καθώς καθορίστηκε μια κύρια έκδοση.)

* Εάν "PY_PYTHON=3" και "PY_PYTHON3=3.7", οι εντολές "python" και
  "python3" θα χρησιμοποιούν και οι δύο συγκεκριμένα την 3.7

Εκτός από τις μεταβλητές περιβάλλοντος, οι ίδιες ρυθμίσεις μπορούν να
διαμορφωθούν στο αρχείο .INI που χρησιμοποιείται από το πρόγραμμα
εκκίνησης.  Η ενότητα στο αρχείο INI ονομάζεται "[defaults]" και το
όνομα του κλειδιού θα είναι το ίδιο με τις μεταβλητές περιβάλλοντος
χωρίς το αρχικό πρόθεμα "PY_" (και σημειώστε ότι τα ονόματα κλειδιών
στο αρχείο INI δεν έχουν διάκριση πεζών-κεφαλαίων.)  Τα περιεχόμενα
μιας μεταβλητής περιβάλλοντος θα αντικαταστήσουν τα στοιχεία που
καθορίζονται στο αρχείο INI.

Για παράδειγμα:

* Η ρύθμιση "PY_PYTHON=3.7" είναι ισοδύναμη με το αρχείο INI που
  περιέχει:

   [defaults]
   python=3.7

* Η ρύθμιση "PY_PYTHON=3" και "PY_PYTHON3=3.7" ισοδυναμεί με το αρχείο
  INI που περιέχει:

   [defaults]
   python=3
   python3=3.7


4.8.5. Διαγνωστικά
------------------

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


4.8.6. Dry Run
--------------

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


4.8.7. Εγκατάσταση κατ' απαίτηση
--------------------------------

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

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


4.8.8. Κωδικοί επιστροφής
-------------------------

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

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

+---------------------+---------+-------------------------------------------------+
| Όνομα               | Τιμή    | Περιγραφή                                       |
|=====================|=========|=================================================|
| RC_BAD_VENV_CFG     | 107     | Βρέθηκε ένα "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" αλλά δεν βρέθηκε.   |
+---------------------+---------+-------------------------------------------------+


4.9. Εύρεση modules
===================

Αυτές οι σημειώσεις συμπληρώνουν την περιγραφή The initialization of
the sys.path module search path με λεπτομερείς σημειώσεις των Windows.

Όταν δεν βρεθεί αρχείο "._pth", συμπληρώνεται έτσι το "sys.path" στα
Windows:

* Μια κενή καταχώρηση προστίθεται στην αρχή, η οποία αντιστοιχεί στον
  τρέχοντα κατάλογο.

* Εάν υπάρχει η μεταβλητή περιβάλλοντος "PYTHONPATH", όπως
  περιγράφεται στο Environment variables, οι εγγραφές της προστίθενται
  στη συνέχεια.  Σημειώστε ότι στα Windows, οι διαδρομές σε αυτήν τη
  μεταβλητή πρέπει να διαχωρίζονται με ερωτηματικά, για να γίνει
  διάκριση από την άνω και κάτω τελεία που χρησιμοποιείται στα
  αναγνωριστικά μονάδων δίσκου ("C:\" κλπ.).

* Μπορούν να προστεθούν επιπλέον "διαδρομές εφαρμογής" στο μητρώο ως
  δευτερεύοντα κλειδιά του
  "\SOFTWARE\Python\PythonCore{version}\PythonPath" κάτω από τις
  κυψέλες "HKEY_CURRENT_USER" και "HKEY_LOCAL_MACHINE".  Τα
  δευτερεύοντα κλειδιά που έχουν ως προεπιλεγμένη τιμή συμβολοσειρές
  διαδρομής οριοθετημένη με ερωτηματικό θα προκαλέσει την προσθήκη
  κάθε διαδρομής στο "sys.path".  (Λάβετε υπόψη ότι όλα τα γνωστά
  προγράμματα εγκατάστασης χρησιμοποιούν μόνο HKLM, επομένως το HKCU
  είναι συνήθως κενό.)

* Εάν έχει οριστεί η μεταβλητή περιβάλλοντος "PYTHONHOME", θεωρείται
  ότι είναι "Python Home".  Διαφορετικά, η διαδρομή του κύριου
  εκτελέσιμου Python χρησιμοποιείται για τον εντοπισμό ενός "αρχείου
  ορόσημο" (είτε "Lib\os.py" ή "pythonXY.zip") για να συμπεράνουμε το
  "Python Home". Αν βρεθεί ένα Python home, οι σχετικοί υποκατάλογοι
  που προστέθηκαν στο "sys.path" ("Lib", "plat-win", κ.λπ.) βασίζονται
  σε αυτόν τον φάκελο.  Διαφορετικά, η διαδρομή του πυρήνα της Python
  δημιουργείται από το PythonPath που είναι αποθηκευμένο στο μητρώο.

* Εάν δεν μπορεί να εντοπιστεί το Python Home, δεν καθορίζεται
  "PYTHONPATH" στο περιβάλλον και δεν μπορούν να βρεθούν καταχωρίσεις
  μητρώου, χρησιμοποιείται μια προεπιλεγμένη διαδρομή με σχετικές
  καταχωρήσεις (π.χ. ".\Lib;.\plat-win", κλπ).

Εάν ένα αρχείο "pyvenv.cfg" βρίσκεται δίπλα στο κύριο εκτελέσιμο
αρχείο ή στον κατάλογο ένα επίπεδο πάνω από το εκτελέσιμο αρχείο,
ισχύουν οι ακόλουθες παραλλαγές:

* Εάν το "home" είναι μια απόλυτη διαδρομή και το "PYTHONHOME" δεν
  έχει οριστεί, αυτή η διαδρομή χρησιμοποιείται αντί για τη διαδρομή
  προς το κύριο εκτελέσιμο κατά την εξαγωγή της αρχικής τοποθεσίας.

Το τελικό αποτέλεσμα όλων αυτών είναι:

* Όταν εκτελείται το "python.exe", ή οποιοδήποτε άλλο .exe στον κύριο
  κατάλογο της Python (είτε μια εγκατεστημένη έκδοση, είτε απευθείας
  από τον κατάλογο PCbuild), συνάγεται η διαδρομή του πυρήνα και οι
  βασικές διαφορές στο μητρώο αγνοούνται.  Άλλες "διαδρομές εφαρμογής"
  στο μητρώο διαβάζονται πάντα.

* Όταν η Python φιλοξενείται σε άλλο .exe (διαφορετικός κατάλογος,
  ενσωματωμένος μέσω COM, κ.λπ.), το "Python Home" δεν θα συναχθεί
  επομένως χρησιμοποιείται η βασική διαδρομή από το μητρώο.  Άλλες
  "διαδρομές εφαρμογής" στο μητρώο διαβάζονται πάντα.

* Εάν η Python δεν μπορεί να βρει το home της και δεν υπάρχει τιμή
  μητρώου (frozen .exe, κάποια πολύ περίεργη εγκατάσταση) λαμβάνετε
  μια διαδρομή με κάποιες προεπιλεγμένες, αλλά σχετικές, διαδρομές.

Για όσους θέλουν να ενσωματώσουν την Python στην εφαρμογή ή την
διανομή τους, οι ακόλουθες συμβουλές θα αποτρέψουν τις διενέξεις με
άλλες εγκαταστάσεις:

* Συμπεριλάβετε ένα αρχείο "._pth" δίπλα στο εκτελέσιμο αρχείο σας που
  περιέχει τους καταλόγους που θέλετε να συμπεριλάβετε. Αυτό θα
  αγνοήσει τις διαδρομές που παρατίθενται στο μητρώο και τις
  μεταβλητές περιβάλλοντος και θα αγνοήσει επίσης το "site" εκτός εάν
  αναφέρεται το "import site".

* Εάν φορτώνετε το "python3.dll" ή το "python37.dll" στο δικό σας
  εκτελέσιμο αρχείο, καλέστε ρητά το "Py_SetPath()" ή (τουλάχιστον) το
  "Py_SetProgramName()" πριν από "Py_Initialize()".

* Διαγράψτε και/ή αντικαταστήστε το "PYTHONPATH" και ορίστε το
  "PYTHONHOME πριν από την εκκίνηση του :file:`python.exe" από την
  εφαρμογή σας.

* Εάν δεν μπορείτε να χρησιμοποιήσετε τις προηγούμενες προτάσεις (για
  παράδειγμα, είστε μια διανομή που επιτρέπει στους χρήστες να
  εκτελούν απευθείας το "python.exe"), βεβαιωθείτε ότι το αρχείο
  ορόσημο ("Lib\os.py") υπάρχει στον κατάλογο εγκατάστασης σας.
  (Λάβετε υπόψη ότι δεν θα εντοπιστεί σε ένα αρχείο ZIP, αλλά θα
  εντοπιστεί ένα αρχείο ZIP με το σωστό όνομα.)

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

Άλλαξε στην έκδοση 3.6: Προσθήκη υποστήριξης αρχείου "._pth" και
καταργείται η επιλογή  "applocal" από το "pyvenv.cfg".

Άλλαξε στην έκδοση 3.6: Προσθήκη "python*XX*.zip" ως πιθανό ορόσημο
όταν βρίσκεται ακριβώς δίπλα στο εκτελέσιμο αρχείο.

Αποσύρθηκε στην έκδοση 3.6: Τα modules που καθορίζονται στο μητρώο
στην περιοχή "Modules" (όχι "PythonPath") μπορούν να εισαχθούν από το
"importlib.machinery.WindowsRegistryFinder". Αυτό το πρόγραμμα εύρεσης
είναι ενεργοποιημένο στα Windows σε 3.6.0 και παλαιότερες εκδόσεις,
αλλά ενδέχεται να πρέπει να προστεθεί ρητά στο "sys.meta_path" στο
μέλλον.


4.10. Πρόσθετα modules
======================

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

Τα τυπικά modules ειδικά για Windows τεκμηριώνονται στο MS Windows
Specific Services.


4.10.1. PyWin32
---------------

The PyWin32 module by Mark Hammond is a collection of modules for
advanced Windows-specific support.  This includes utilities for:

* Component Object Model (COM)

* Win32 API κλήσεις

* Μητρώο

* Μητρώο συμβάντων

* Microsoft Foundation Classes (MFC) user interfaces

Το PythonWin είναι ένα δείγμα εφαρμογής MFC που αποστέλλεται με το
PyWin32.  Είναι ένα ενσωματωμένο IDE με ενσωματωμένο πρόγραμμα
εντοπισμού σφαλμάτων.

Δείτε επίσης:

  Win32 How Do I...?
     από τον Tim Golden

  Python and COM
     από τους David και Paul Boddie


4.10.2. cx_Freeze
-----------------

Το cx_Freeze αναδιπλώνει Python scripts σε εκτελέσιμα προγράμματα των
Windows ("***.exe" αρχεία). Όταν το κάνετε αυτό, μπορείτε να
διανείμετε την εφαρμογή σας χωρίς να απαιτείται από τους χρήστες σας
να εγκαταστήσουν την Python.


4.11. Μεταγλώττιση Python στα Windows
=====================================

Εάν θέλετε να μεταγλωττίσετε μόνοι σας το CPython, το πρώτο πράγμα που
πρέπει να κάνετε είναι να λάβετε το source. Μπορείτε να κάνετε λήψη
είτε τον πηγαίο κώδικα της πιο πρόσφατης έκδοσης είτε απλώς να πάρετε
μια φρέσκια έκδοση checkout.

Το δέντρο προέλευσης περιέχει μια λύση έκδοσης και αρχεία έργου για το
Microsoft Visual Studio, που είναι ο μεταγλωττιστής που
χρησιμοποιείται για τη δημιουργία των επίσημων εκδόσεων Python. Αυτά
τα αρχεία βρίσκονται στον κατάλογο "PCbuild".

Ελέγξτε το "PCbuild/readme.txt" για γενικές πληροφορίες σχετικά με τη
διαδικασία κατασκευής.

Για modules επέκτασης, συμβουλευτείτε το Building C and C++ Extensions
on Windows.


4.12. Άλλες Πλατφόρμες
======================

Με τη συνεχή ανάπτυξη της Python, ορισμένες πλατφόρμες που
υποστηριζόταν παλαιότερα δεν υποστηρίζονται πλέον (λόγω έλλειψης
χρηστών ή προγραμματιστών). Ελέγξτε το **PEP 11** για λεπτομέρειες
σχετικά με όλες τις μη υποστηριζόμενες πλατφόρμες.

* Το Windows CE no longer supported από την Python 3 (αν ήταν ποτέ).

* Το πρόγραμμα εγκατάστασης Cygwin προσφέρει επίσης την εγκατάσταση
  του διερμηνέα Python
  <https://cygwin.com/packages/summary/python3.html>`

Ανατρέξτε στην ενότητα Python for Windows για λεπτομερείς πληροφορίες
σχετικά με πλατφόρμες με προμεταγλωττισμένα προγράμματα εγκατάστασης.
