Πώς να ξεκινήσετε έναν απλό διακομιστή Web στην Python 3 σε Mac
Πίνακας περιεχομένων:
Εάν είστε χρήστης της Python, ίσως γνωρίζετε ήδη το εύχρηστο τέχνασμα που σας επιτρέπει να δημιουργήσετε άμεσα έναν απλό διακομιστή ιστού χρησιμοποιώντας μια εύκολη συμβολοσειρά εντολών που έχει εισαχθεί στη γραμμή εντολών του Mac OS. Αλλά αν είστε χρήστης Mac Python που έχει εγκαταστήσει ή ενημερώσει την Python 3, τότε θα διαπιστώσετε ότι η παραδοσιακή συμβολοσειρά εντολών από τις προηγούμενες εκδόσεις της Python δεν λειτουργεί για την εκκίνηση του διακομιστή web στη νέα Python 3.x+ κυκλοφορίες.
Μην ανησυχείτε, το απλό κόλπο Python διακομιστή ιστού εξακολουθεί να λειτουργεί στην Python 3 για Mac (και φυσικά για Linux και Windows, αλλά προφανώς καλύπτουμε το MacOS), είναι ότι η σύνταξη της εντολής είναι λίγο διαφορετικά. Θα σας δείξουμε πώς να ξεκινήσετε έναν απλό διακομιστή ιστού με την Python 3 χρησιμοποιώντας το νέο αντίστοιχο Python 3.0+ της εντολής python -m SimpleHTTPServer.
Πώς να ξεκινήσετε έναν διακομιστή HTTP Web στην Python 3.0+
Υποθέτουμε ότι έχετε ήδη εγκαταστήσει ή ενημερώσει την Python 3.0+ στο Mac, αυτή η παραλλαγή της εντολής απαιτεί Python 3.0 ή νεότερη έκδοση.
Από τη γραμμή εντολών, εισαγάγετε ακριβώς την ακόλουθη σύνταξη:
python -m http.server
OR (ανάλογα με τον τρόπο εγκατάστασης και ονομασίας του Python 3.x):
python3 -m http.server
Hit return και η Python 3 θα ξεκινήσει αμέσως έναν απλό διακομιστή HTTP από τον κατάλογο στον οποίο εκτελέστηκε η εντολή.
Ο http.server στην Python 3 θα εκτελεστεί στο τερματικό, εάν δεν υπάρχει αρχείο web στον κατάλογο από αυτό θα εμφανίζεται το ίδιο το ευρετήριο καταλόγου.
Μπορείτε να το δοκιμάσετε αμέσως ανοίγοντας την ακόλουθη διεύθυνση URL σε οποιοδήποτε πρόγραμμα περιήγησης ιστού στον υπολογιστή:
http://0.0.0.0:8000
Όλη η δραστηριότητα διακομιστή ιστού, όπως η πρόσβαση σε μεμονωμένα αρχεία, φακέλους, καταλόγους, κ.λπ., θα εμφανίζεται στο ενεργό παράθυρο τερματικού Python, όπως συμβαίνει, όπως συμβαίνει με την καταγραφή καταγραφής ιστού σε έναν διακομιστή Apache ή Nginx .
Σημαντική σημείωση: εάν έχετε εγκαταστήσει ταυτόχρονα python και python3, ίσως χρειαστεί να αλλάξετε ελαφρώς τη σύνταξη σε αναφορά python3 και python2 ή σε άλλη έκδοση python. Αυτό θα εξαρτηθεί από τον τρόπο ενημέρωσης σε Python 3 στο Mac, αλλά ένα συνηθισμένο παράδειγμα θα ήταν η χρήση της εντολής 'python3' αντί:
python3 -m http.server
Όπως πριν, πατήστε επιστροφή και ο ενεργός κατάλογος θα μετατραπεί σε διακομιστή ιστού.
Τι είναι το ισοδύναμο Python3 του python -m CGIHTTPSserver;
Ένα άλλο κοινό κόλπο είναι η χρήση του διακομιστή CGI (Common Gateway Interface) στην Python για σενάρια CGI σε python ή perl. Επομένως, εάν χρειαστεί να εκτελέσετε το ισοδύναμο python3 της εντολής "python -m CGIHTTPServer" για CGI, αυτό θα ήταν ως εξής:
python3 -m http.server --cgi
Εναλλακτικά, εάν η Python 3 είναι εγκατεστημένη και ονομάζεται python, η εντολή θα είναι απλώς:
python -m http.server --cgi
Σε κάθε περίπτωση, θα χρειαστείτε τη σημαία –cgi για να ξεκινήσετε τον διακομιστή CGI HTTP στην Python 3.
Εμφανίζεται ένα σφάλμα που λέει "/usr/bin/python: Δεν υπάρχει λειτουργική μονάδα με το όνομα http" τώρα τι;
Αν δείτε ένα σφάλμα “/usr/bin/python: No module named http” όταν προσπαθείτε να εκτελέσετε τη συμβολοσειρά εντολής python -m http.server, τότε πιθανότατα δεν εκτελείτε Python 3, ή χρησιμοποιείτε λάθος εντολή για το python3 (δηλαδή python εναντίον python3, ανάλογα με το πώς ονομάζεται η έκδοση και πώς εγκαταστάθηκε ή ενημερώθηκε στο Mac). Είναι επίσης πιθανό η Python να μην είναι καθόλου εγκατεστημένη στον υπολογιστή, αν και αυτό είναι λιγότερο πιθανό για Mac επειδή το Python2 είναι εγκατεστημένο από προεπιλογή σε Mac OS, αν και οι χρήστες πρέπει να εγκαταστήσουν με μη αυτόματο τρόπο το ενημερωμένο Python 3.x στο Mac, το οποίο διατηρεί ταυτόχρονα το πρωτότυπο Έκδοση έκδοσης Python 2.x. Συνήθως αυτό επιτυγχάνεται με το Homebrew.
Αλλάξτε τη σύνταξη όπως αναφέρεται παραπάνω ή εάν χρησιμοποιείτε παλαιότερη έκδοση Python δοκιμάστε την εντολή "python -m SimpleHTTPServer" από την Python 2 και παλαιότερη.
Φυσικά οι απλοί διακομιστές ιστού python δεν προορίζονται για περιβάλλοντα παραγωγής και είναι πραγματικά οι καλύτεροι για ένα γρήγορο scratchpad ή περιβάλλον δοκιμής. Εάν θέλετε να εκτελέσετε έναν διακομιστή ιστού που αντιμετωπίζει δημόσια ή απλώς πιο ισχυρό γενικά, θα θέλατε να χρησιμοποιήσετε κάτι όπως το Apache ή το Nginx, αν και η διαμόρφωση αυτών μεμονωμένα σε Mac απαιτεί κάποια ρύθμιση. Μια απλούστερη επιλογή για ένα πλήρες περιβάλλον διακομιστή ιστού στο Mac είναι η χρήση του MAMP, που καθιστά τη ρύθμιση και την εκκίνηση ενός πλήρους περιβάλλοντος Apache, MySQL, PHP στο Mac.
Γνωρίζετε άλλες ενδιαφέρουσες συμβουλές ή κόλπα Python; Γνωρίζετε άλλες χρήσιμες συμβολοσειρές εντολών python για την εκκίνηση διακομιστών http ή με άλλο τρόπο; Μοιραστείτε μαζί μας στα παρακάτω σχόλια!