16. Παράρτημα
*************


16.1. Διαδραστική Λειτουργία
============================


16.1.1. Διαχείριση Σφαλμάτων
----------------------------

When an error occurs, the interpreter prints an error message and a
stack trace. In interactive mode, it then returns to the primary
prompt; when input came from a file, it exits with a nonzero exit
status after printing the stack trace. (Exceptions handled by an
"except" clause in a "try" statement are not errors in this context.)
Some errors are unconditionally fatal and cause an exit with a nonzero
exit; this applies to internal inconsistencies and some cases of
running out of memory.  All error messages are written to the standard
error stream; normal output from executed commands is written to
standard output.

Πληκτρολογώντας τον χαρακτήρα διακοπής (συνήθως "Control-C" ή
"Delete") στην κύρια ή δευτερεύουσα γραμμή εντολών ακυρώνει την είσοδο
και επιστρέφει στην κύρια γραμμή εντολών. [1] Πληκτρολογώντας μια
διακοπή ενώ εκτελείται μια εντολή δημιουργείται η εξαίρεση
"KeyboardInterrupt", η οποία μπορεί να αντιμετωπιστεί από μια πρόταση
"try".


16.1.2. Εκτελέσιμα Python Scripts
---------------------------------

Στα συστήματα BSD'ish Unix systems, τα Python scripts μπορούν να
γίνουν άμεσα εκτελέσιμα, όπως τα shell scripts, βάζοντας τη γραμμή:

   #!/usr/bin/env python3.5

(υποθέτοντας ότι ο interpreter βρίσκεται στο "PATH" του χρήστη) στην
αρχή του σεναρίου και δίνοντας στο αρχείο μια εκτελέσιμη λειτουργία.
Το "#!" πρέπει να είναι οι δύο πρώτοι χαρακτήρες του αρχείου.  Σε
ορισμένες πλατφόρμες, αυτή η πρώτη γραμμή πρέπει να τελειώνει με μια
γραμμή τύπου Unix που τελειώνει με μια γραμμή τύπου Unix που τελειώνει
("'\n'"), όχι με γραμμή Windows ("'\r\n'").  Σημειώστε ότι ο
χαρακτήρας κατακερματισμού, , "'#'", χρησιμοποιείται για την έναρξη
ενός σχολίου στην Python.

Το script μπορεί να δοθεί μια εκτελέσιμη λειτουργία ή άδεια,
χρησιμοποιώντας την εντολή **chmod**.

   $ chmod +x myscript.py

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


16.1.3. Το διαδραστικό αρχείο εκκίνησης
---------------------------------------

Όταν χρησιμοποιείτε την Python διαδραστικά, είναι συχνά βολικό να
εκτελούνται ορισμένες τυπικές εντολές κάθε φορά που ξεκινά ο
interpreter.  Μπορείτε να το κάνετε αυτό ορίζοντας μια μεταβλητή
περιβάλλοντος με το όνομα "PYTHONSTARTUP" στο όνομα ενός αρχείου που
περιέχει τις εντολές εκκίνησης σας.  Αυτό είναι παρόμοιο με το
χαρακτηριστικό ".profile" στα Unix shells.

Αυτό το αρχείο διαβάζεται μόνο σε διαδραστικές συνεδρίες, όχι όταν η
Python διαβάζει εντολές από ένα script, και όχι όταν το "/dev/tty"
δίνεται ως η ρητή πηγή εντολών (η οποία κατά τα άλλα συμπεριφέρεται
σαν μια διαδραστική συνεδρία).  Εκτελείται στον ίδιο χώρο ονομάτων
όπου εκτελούνται αλληλεπιδραστικές εντολές, έτσι ώστε τα αντικείμενα
που ορίζει ή εισάγει να μπορούν να χρησιμοποιηθούν χωρίς επιφύλαξη στη
διαδραστική περίοδο λειτουργίας. Μπορείτε επίσης να αλλάξετε τις
προτροπές "sys.ps1" και "sys.ps2" σε αυτό το αρχείο.

Εάν θέλετε να διαβάσετε ένα επιπλέον αρχείο εκκίνησης από τον τρέχοντα
κατάλογο, μπορείτε να το προγραμματίσετε στο καθολικό αρχείο εκκίνησης
χρησιμοποιώντας κώδικα όπως "if os.path.isfile('.pythonrc.py'):
exec(open('.pythonrc.py').read())".  Εάν θέλετε να χρησιμοποιήσετε το
αρχείο εκκίνησης σε ένα σενάριο, πρέπει να το κάνετε ρητά στο script:

   import os
   filename = os.environ.get('PYTHONSTARTUP')
   if filename and os.path.isfile(filename):
       with open(filename) as fobj:
           startup_file = fobj.read()
       exec(startup_file)


16.1.4. Τα Modules Προσαρμογής
------------------------------

Python provides two hooks to let you customize it: "sitecustomize" and
"usercustomize".  To see how it works, you need first to find the
location of your user site-packages directory.  Start Python and run
this code:

   >>> import site
   >>> site.getusersitepackages()
   '/home/user/.local/lib/python3.5/site-packages'

Τώρα μπορείτε να δημιουργήσετε ένα αρχείο με το όνομα
"usercustomize.py" σε αυτόν τον κατάλογο και να βάλετε ό,τι θέλετε σε
αυτόν.  Θα επηρεάσει κάθε επίκληση της Python, εκτός εάν ξεκινήσει με
την επιλογή "-s" απενεργοποιήστε την αυτόματη εισαγωγή.

"sitecustomize" works in the same way, but is typically created by an
administrator of the computer in the global site-packages directory,
and is imported before "usercustomize".  See the documentation of the
"site" module for more details.

-[ Υποσημειώσεις ]-

[1] Ένα πρόβλημα με το πακέτο GNU Readline μπορεί να το αποτρέψει.
