Hvordan starte en enkel webserver i Python 3 på Mac

Innholdsfortegnelse:

Anonim

Hvis du er en Python-bruker, er du kanskje allerede kjent med det praktiske trikset som lar deg umiddelbart lage en enkel webserver ved å bruke en enkel kommandostreng som legges inn på kommandolinjen til Mac OS. Men hvis du er en Mac Python-bruker som har installert eller oppdatert til Python 3, vil du finne at den tradisjonelle kommandostrengen fra de tidligere Python-versjonene ikke fungerer for å starte nettserveren i nye Python 3.x+ utgivelser.

Ikke bekymre deg, det enkle webserver Python-trikset fungerer fortsatt i Python 3 for Mac (og for Linux og Windows også selvfølgelig, men vi dekker åpenbart MacOS), det er at kommandosyntaksen er bare litt annerledes. Vi viser deg hvordan du starter en enkel nettserver med Python 3 ved å bruke den nye Python 3.0+-ekvivalenten til python -m SimpleHTTPServer-kommandoen.

Hvordan starte en Web HTTP-server i Python 3.0+

Vi antar at du allerede har installert eller oppdatert til Python 3.0+ på Mac, denne varianten av kommandoen krever Python 3.0 eller nyere.

Fra kommandolinjen skriver du inn følgende syntaks nøyaktig:

python -m http.server

ELLER (avhengig av hvordan Python 3.x er installert og navngitt):

python3 -m http.server

Trykk retur og Python 3 vil umiddelbart starte en enkel HTTP-server fra katalogen der kommandoen ble utført.

http.serveren i Python 3 vil kjøre i terminalen, hvis det ikke er noen nettfil i katalogen, vil selve katalogindeksen vises.

Du kan teste dette umiddelbart ved å åpne følgende URL i en hvilken som helst nettleser på datamaskinen:

http://0.0.0.0:8000

All nettserveraktivitet, som å få tilgang til individuelle filer, mapper, kataloger, osv., vil vises i det aktive Python-terminalvinduet når det skjer, på en måte som å hale nettlogger på en Apache- eller Nginx-server .

Viktig merknad: hvis du har python og python3 installert samtidig, må du kanskje endre syntaksen litt for å referere til python3 og python2 eller en annen pythonversjon. Dette vil avhenge av hvordan du oppdaterte til Python 3 på Mac, men et vanlig eksempel vil være å bruke kommandoen 'python3' i stedet:

python3 -m http.server

Akkurat som før, trykk retur og den aktive katalogen blir omgjort til en webserver.

Hva er Python3-ekvivalenten til python -m CGIHTTPServer?

Et annet vanlig triks er å bruke CGI-serveren (Common Gateway Interface) i Python for CGI-skript i python eller perl. Så hvis du trenger å kjøre python3-ekvivalenten til "python -m CGIHTTPServer"-kommandoen for CGI, vil det være som følger:

python3 -m http.server --cgi

Alternativt, hvis Python 3 er installert og navngitt som python, vil kommandoen ganske enkelt være:

python -m http.server --cgi

Du trenger uansett –cgi-flagget for å starte CGI HTTP-serveren i Python 3.

Jeg får en feilmelding som sier "/usr/bin/python: Ingen modul k alt http" hva nå?

Hvis du ser en "/usr/bin/python: Ingen modul k alt http"-feil når du prøver å utføre kommandostrengen python -m http.server, så kjører du mest sannsynlig ikke Python 3, eller du bruker feil kommando for python3 (dvs. python vs python3, avhengig av hvordan versjonen heter og hvordan den ble installert eller oppdatert til på Mac). Det er også mulig at Python ikke er installert på datamaskinen i det hele tatt, selv om det er mindre sannsynlig for Mac fordi Python2 er installert som standard på Mac OS, selv om brukere manuelt må installere den oppdaterte Python 3.x på Mac, som samtidig bevarer originalen Python 2.x utgivelsesversjon. Vanligvis oppnås dette med Homebrew.

Endre syntaksen som referert ovenfor, eller hvis du bruker en tidligere Python-versjon, prøv kommandoen "python -m SimpleHTTPServer" fra Python 2 og tidligere.

Selvfølgelig er de enkle python-nettserverne ikke ment for produksjonsmiljøer, og de er egentlig bare best for en rask skrapelodd eller testmiljø. Hvis du vil kjøre en nettserver som er offentlig vendt eller bare mer robust generelt, vil du gå med noe som Apache eller Nginx, selv om å konfigurere dem individuelt på en Mac krever litt oppsett. Et enklere alternativ for et komplett webservermiljø på Mac er å bruke MAMP, noe som gjør oppsett og start av et fullstendig Apache, MySQL, PHP-miljø på Macen omtrent så enkelt som det blir.

Vet du om noen andre interessante Python-tips eller triks? Vet du om noen andre nyttige python-kommandostrenger for å starte http-servere eller annet? Del med oss ​​i kommentarfeltet nedenfor!

Hvordan starte en enkel webserver i Python 3 på Mac