Come avviare un semplice server Web in Python 3 su Mac
Sommario:
Se sei un utente Python potresti già avere familiarità con il pratico trucco che ti consente di creare istantaneamente un semplice server web utilizzando una semplice stringa di comando inserita nella riga di comando di Mac OS. Ma se sei un utente Mac Python che ha installato o aggiornato a Python 3, scoprirai che la stringa di comando tradizionale delle versioni precedenti di Python non funziona per avviare il server Web nel nuovo Python 3.x+ rilasci.
Non preoccuparti, il semplice trucco Python del web server funziona ancora in Python 3 per Mac (e anche per Linux e Windows ovviamente, ma stiamo ovviamente coprendo MacOS), è che la sintassi del comando è solo leggermente diverso. Ti mostreremo come avviare un semplice server Web con Python 3 utilizzando il nuovo equivalente Python 3.0+ del comando python -m SimpleHTTPServer.
Come avviare un server Web HTTP in Python 3.0+
Supponiamo che tu abbia già installato o aggiornato a Python 3.0+ su Mac, questa variante del comando richiede Python 3.0 o più recente.
Dalla riga di comando, inserisci esattamente la seguente sintassi:
python -m http.server
OR (a seconda di come è installato e denominato Python 3.x):
python3 -m http.server
Premi invio e Python 3 avvierà istantaneamente un semplice server HTTP dalla directory in cui è stato eseguito il comando.
L'http.server in Python 3 verrà eseguito nel terminale, se non ci sono file web nella directory verrà mostrato l'indice della directory stessa.
Puoi verificarlo immediatamente aprendo il seguente URL in qualsiasi browser Web sul computer:
http://0.0.0.0:8000
Tutte le attività del server Web, come l'accesso a singoli file, cartelle, directory, ecc., verranno mostrate nella finestra del terminale Python attivo in tempo reale, un po' come seguire i log Web su un server Apache o Nginx .
Nota importante: se python e python3 sono installati contemporaneamente, potrebbe essere necessario modificare leggermente la sintassi per fare riferimento a python3 e python2 oa un' altra versione di python. Questo dipenderà da come hai aggiornato a Python 3 sul Mac, ma un esempio comune potrebbe essere l'utilizzo del comando 'python3':
python3 -m http.server
Proprio come prima, premi invio e la directory attiva verrà trasformata in un server web.
Qual è l'equivalente Python3 di python -m CGIHTTPServer?
Un altro trucco comune è usare il server CGI (Common Gateway Interface) in Python per gli script CGI in python o perl. Pertanto, se è necessario eseguire l'equivalente python3 del comando "python -m CGIHTTPServer" per CGI, sarebbe il seguente:
python3 -m http.server --cgi
In alternativa, se Python 3 è installato e denominato python, il comando sarebbe semplicemente:
python -m http.server --cgi
In ogni caso avrai bisogno del flag –cgi per avviare il server HTTP CGI in Python 3.
Ottengo un messaggio di errore che dice "/usr/bin/python: nessun modulo chiamato http" e adesso?
Se vedi un errore "/usr/bin/python: No module named http" quando cerchi di eseguire la stringa di comando python -m http.server allora molto probabilmente non stai eseguendo Python 3, o stai usando il comando sbagliato per python3 (cioè python vs python3, a seconda di come viene chiamata la versione e di come è stata installata o aggiornata sul Mac). È anche possibile che Python non sia affatto installato sul computer, anche se è meno probabile per i Mac perché Python2 è installato per impostazione predefinita su Mac OS, sebbene gli utenti debbano installare manualmente Python 3.x aggiornato sul Mac, che conserva contemporaneamente l'originale Versione di rilascio di Python 2.x. In genere questo si ottiene con Homebrew.
Cambia la sintassi come indicato sopra, o se stai usando una versione precedente di Python prova il comando "python -m SimpleHTTPServer" da Python 2 e versioni precedenti.
Ovviamente i semplici web server python non sono pensati per gli ambienti di produzione e sono davvero i migliori per un veloce scratchpad o un ambiente di test. Se desideri eseguire un server Web rivolto pubblicamente o semplicemente più robusto in generale, ti consigliamo di utilizzare qualcosa come Apache o Nginx, anche se configurarli singolarmente su un Mac richiede alcune impostazioni. Un'opzione più semplice per un ambiente server Web completo su Mac è utilizzare MAMP, che rende l'impostazione e l'avvio di un ambiente Apache, MySQL e PHP completo su Mac il più semplice possibile.
Conosci altri suggerimenti o trucchi interessanti su Python? Conoscete altre utili stringhe di comando Python per l'avvio di server http o altro? Condividi con noi nei commenti qui sotto!