Sådan starter du en simpel webserver i Python 3 på Mac
Indholdsfortegnelse:
Hvis du er en Python-bruger, er du måske allerede bekendt med det praktiske trick, der giver dig mulighed for øjeblikkeligt at oprette en simpel webserver ved hjælp af en nem kommandostreng indtastet på kommandolinjen i Mac OS. Men hvis du er en Mac Python-bruger, der har installeret eller opdateret til Python 3, så vil du opdage, at den traditionelle kommandostreng fra de tidligere Python-versioner ikke virker til at starte webserveren i den nye Python 3.x+ frigiver.
Bare rolig, det simple webserver Python-trick virker stadig i Python 3 til Mac (og til Linux og Windows selvfølgelig også, men vi dækker naturligvis MacOS), det er, at kommandosyntaksen er bare lidt anderledes. Vi viser dig hvordan du starter en simpel webserver med Python 3 ved at bruge den nye Python 3.0+ ækvivalent til python -m SimpleHTTPServer-kommandoen.
Sådan starter du en web-HTTP-server i Python 3.0+
Vi antager, at du allerede har installeret eller opdateret til Python 3.0+ på Mac, denne variation af kommandoen kræver Python 3.0 eller nyere.
Fra kommandolinjen skal du indtaste følgende syntaks nøjagtigt:
python -m http.server
OR (afhængigt af hvordan Python 3.x er installeret og navngivet):
python3 -m http.server
Tryk retur og Python 3 vil øjeblikkeligt starte en simpel HTTP-server fra det bibliotek, hvori kommandoen blev udført.
http.serveren i Python 3 vil køre i terminalen, hvis der ikke er nogen webfil i mappen, vil selve mappeindekset blive vist.
Du kan teste dette med det samme ved at åbne følgende URL i en hvilken som helst webbrowser på computeren:
http://0.0.0.0:8000
Al webserveraktivitet, som f.eks. adgang til individuelle filer, mapper, mapper osv., vil blive vist i det aktive Python-terminalvindue, når det sker, på en måde som at hale weblogfiler på en Apache- eller Nginx-server .
Vigtig bemærkning: Hvis du har python og python3 installeret samtidigt, skal du muligvis ændre syntaksen lidt for at referere til python3 og python2 eller en anden pythonversion. Dette vil afhænge af, hvordan du opdaterede til Python 3 på Mac, men et almindeligt eksempel ville være at bruge kommandoen 'python3' i stedet:
python3 -m http.server
Ligesom før, tryk retur, og det aktive bibliotek bliver omdannet til en webserver.
Hvad er Python3-ækvivalenten til python -m CGIHTTPServer?
Et andet almindeligt trick er at bruge CGI-serveren (Common Gateway Interface) i Python til CGI-scripts i python eller perl. Så hvis du har brug for at køre python3-ækvivalenten til "python -m CGIHTTPServer"-kommandoen for CGI, ville det være som følger:
python3 -m http.server --cgi
Alternativt, hvis Python 3 er installeret og navngivet som python, ville kommandoen blot være:
python -m http.server --cgi
Uanset hvad skal du bruge flaget –cgi for at starte CGI HTTP-serveren i Python 3.
Jeg får en fejl, der siger "/usr/bin/python: Intet modul ved navn http" hvad nu?
Hvis du ser en "/usr/bin/python: Intet modul med navnet http"-fejl, når du forsøger at udføre kommandostrengen python -m http.server, så kører du højst sandsynligt ikke Python 3, eller du bruger den forkerte kommando til python3 (dvs. python vs python3, afhængigt af hvordan versionen er navngivet og hvordan den blev installeret eller opdateret til på Mac). Det er også muligt, at Python slet ikke er installeret på computeren, selvom det er mindre sandsynligt for Mac'er, fordi Python2 er installeret som standard på Mac OS, selvom brugere manuelt skal installere den opdaterede Python 3.x på Mac'en, som samtidig bevarer originalen Python 2.x udgivelsesversion. Dette opnås typisk med Homebrew.
Skift syntaksen som nævnt ovenfor, eller hvis du bruger en tidligere Python-version, prøv kommandoen "python -m SimpleHTTPServer" fra Python 2 og tidligere.
Selvfølgelig er de simple python-webservere ikke beregnet til produktionsmiljøer, og de er egentlig bare bedst til en hurtig scratchpad eller testmiljø. Hvis du vil køre en webserver, der er offentligt vendt eller bare mere robust generelt, vil du gerne gå med noget som Apache eller Nginx, selvom konfiguration af dem individuelt på en Mac kræver en vis opsætning. En enklere mulighed for et komplet webservermiljø på Mac er at bruge MAMP, hvilket gør opsætning og start af et komplet Apache-, MySQL-, PHP-miljø på Mac'en omtrent lige så simpelt som det bliver.
Kender du andre interessante Python-tip eller tricks? Kender du til andre nyttige python-kommandostrenge til at starte http-servere eller andet? Del med os i kommentarerne nedenfor!