16.Παράρτημα

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

Υπάρχουν δύο παραλλαγές του διαδραστικούREPL. Ο κλασικός βασικός διερμηνέας υποστηρίζει σε όλες τις πλατφόρμες με ελάχιστες δυνατότητες ελέγχου γραμμής.

Σε Windows ή συστήματα τύπου Unix με υποστήριξηcurses, χρησιμοποιείται από προεπιλογή ένα νέο διαδραστικό shell. Αυτό υποστηρίζει χρώμα, επεξεργασία πολλαπλών γραμμών, περιήγηση ιστορικού και λειτουργία επικόλλησης. Για να απενεργοποιήσετε το χρώμα, δείτε το στοControlling color για λεπτομέρειες. Τα πλήκτρα λειτουργιών παρέχουν κάποια πρόσθετη λειτουργικότητα. ΤοF1 εισέρχεται στο διαδραστικό πρόγραμμα περιήγησης βοήθειαςpydoc. ΤοF2 επιτρέπει την περιήγηση στο ιστορικό γραμμής εντολών χωρίς έξοδο ούτε με τις εντολές>>> and. ΤοF3 εισέρχεται στην «λειτουργία επικόλλησης», πράγμα που διευκολύνει την επικόλληση μεγαλύτερων μπλοκ κώδικα. Πατήστε τοF3 για να επιστρέψετε στην κανονική προτροπή.

Όταν χρησιμοποιείτε το νέο διαδραστικό κέλυφος, βγείτε από το shell πληκτρολογώνταςexit orquit. Η προσθήκη παρενθέσεων κλήσης μετά από αυτές τις εντολές δεν απαιτείται.

Εάν το νέο διαδραστικό shell δεν είναι επιθυμητό, μπορεί να απενεργοποιηθεί μέσω της μεταβλητής περιβάλλοντοςPYTHON_BASIC_REPL.

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

Όταν παρουσιαστεί ένα σφάλμα, ο interpreter εμφανίζει ένα μήνυμα σφάλματος και ένα stack trace. Στη διαδραστική λειτουργία, στη συνέχεια επιστρέφει στην κύρια γραμμή εντολών∙ όταν η είσοδος προέρχεται από ένα αρχείο, εξέρχεται με κατάσταση εξόδου μη μηδενική μετά την εκτύπωση του stack trace. (Οι εξαιρέσεις που αντιμετωπίζονται από μια εντολήexcept σε έναtry μπλοκ, δεν είναι σφάλματα σε αυτό το πλαίσιο.) Ορισμένα σφάλματα είναι άνευ όρων μοιραία και προκαλούν έξοδο με κατάσταση εξόδου μη μηδενική. Αυτό ισχύει για εσωτερικές ασυνέπειες και ορισμένες περιπτώσεις εξάντλησης της μνήμης. Όλα τα μηνύματα σφάλματος εγγράφονται στην τυπική ροή σφαλμάτων∙ η κανονική έξοδος από τις εκτελεσμένες εντολές γράφεται στην τυπική έξοδο.

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

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

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

#!/usr/bin/env python3

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

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

$chmod+xmyscript.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 σε αυτό το αρχείο.

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

importosfilename=os.environ.get('PYTHONSTARTUP')iffilenameandos.path.isfile(filename):withopen(filename)asfobj:startup_file=fobj.read()exec(startup_file)

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

Η Python παρέχει δύο άγκιστρα για να σας επιτρέψει να την προσαρμόσετε:sitecustomize καιusercustomize. Για να δείτε πώς λειτουργεί, πρέπει πρώτα να βρείτε τη θέση του καταλόγου πακέτων ιστοτόπων χρήστη. Ξεκινήστε την Python και εκτελέσετε αυτός ο κώδικας:

>>>importsite>>>site.getusersitepackages()'/home/user/.local/lib/python3.x/site-packages'

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

Τοsitecustomize λειτουργεί με τον ίδιο τρόπο, αλλά συνήθως δημιουργείται από έναν διαχειριστή του υπολογιστή στον παγκόσμιο κατάλογο πακέτων τοποθεσιών και εισάγεται πριν από τοusercustomize. Δείτε την τεκμηρίωση του modulesite για περισσότερες λεπτομέρειες.

Υποσημειώσεις

[1]

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