Hur man startar en enkel webbserver i Python 3 på Mac

Innehållsförteckning:

Anonim

Om du är en Python-användare kanske du redan är bekant med det praktiska tricket som gör att du omedelbart kan skapa en enkel webbserver med en enkel kommandosträng som anges på kommandoraden i Mac OS. Men om du är en Mac Python-användare som har installerat eller uppdaterat till Python 3, kommer du att upptäcka att den traditionella kommandosträngen från de tidigare Python-versionerna inte fungerar för att initiera webbservern i nya Python 3.x+ släpper.

Oroa dig inte, det enkla webbservern Python-tricket fungerar fortfarande i Python 3 för Mac (och för Linux och Windows också förstås, men vi täcker uppenbarligen MacOS), det är att kommandosyntaxen är bara lite annorlunda. Vi visar dig hur du startar en enkel webbserver med Python 3 genom att använda den nya Python 3.0+-motsvarigheten till kommandot python -m SimpleHTTPServer.

Hur man startar en webb-HTTP-server i Python 3.0+

Vi antar att du redan har installerat eller uppdaterat till Python 3.0+ på Mac, denna variant av kommandot kräver Python 3.0 eller senare.

Från kommandoraden anger du följande syntax exakt:

python -m http.server

ELLER (beroende på hur Python 3.x är installerat och namngett):

python3 -m http.server

Tryck på retur och Python 3 startar omedelbart en enkel HTTP-server från katalogen där kommandot kördes.

http.servern i Python 3 kommer att köras i terminalen, om det inte finns någon webbfil i katalogen kommer själva katalogindexet att visas.

Du kan testa detta direkt genom att öppna följande URL i valfri webbläsare på datorn:

http://0.0.0.0:8000

All webbserveraktivitet, som att komma åt enskilda filer, mappar, kataloger, etc, kommer att visas i det aktiva Python-terminalfönstret live när det händer, ungefär som att avsluta webbloggar på en Apache- eller Nginx-server .

Viktig notering: om du har python och python3 installerade samtidigt, kan du behöva ändra syntaxen något för att referera till python3 och python2 eller en annan pythonversion. Detta beror på hur du uppdaterade till Python 3 på Mac, men ett vanligt exempel skulle vara att använda kommandot "python3" istället:

python3 -m http.server

Precis som tidigare, tryck på retur och den aktiva katalogen förvandlas till en webbserver.

Vad är Python3-motsvarigheten till python -m CGIHTTPServer?

Ett annat vanligt knep är att använda CGI-servern (Common Gateway Interface) i Python för CGI-skript i python eller perl. Så om du behöver köra python3-motsvarigheten till "python -m CGIHTTPServer"-kommandot för CGI skulle det vara följande:

python3 -m http.server --cgi

Alternativt, om Python 3 är installerat och namngett som python, skulle kommandot helt enkelt vara:

python -m http.server --cgi

Hur som helst behöver du flaggan –cgi för att starta CGI HTTP-servern i Python 3.

Jag får ett felmeddelande som säger "/usr/bin/python: Ingen modul med namnet http" vad nu?

Om du ser ett "/usr/bin/python: Ingen modul med namnet http"-fel när du försöker köra kommandosträngen python -m http.server så kör du troligen inte Python 3, eller du använder fel kommando för python3 (dvs python vs python3, beroende på hur versionen heter och hur den installerades eller uppdaterades till på Mac). Det är också möjligt att Python inte är installerat på datorn alls, även om det är mindre troligt för Mac-datorer eftersom Python2 är installerat som standard på Mac OS, även om användare manuellt måste installera den uppdaterade Python 3.x på Mac-datorn, som samtidigt bevarar originalet Utgivningsversion av Python 2.x. Vanligtvis uppnås detta med Homebrew.

Ändra syntaxen enligt ovan, eller om du använder en tidigare Python-version prova kommandot "python -m SimpleHTTPServer" från Python 2 och tidigare.

Naturligtvis är de enkla python-webbservrarna inte avsedda för produktionsmiljöer och de är egentligen bara bäst för en snabb scratchpad eller testmiljö. Om du vill köra en webbserver som är offentligt vänd eller bara mer robust i allmänhet, skulle du vilja gå med något som Apache eller Nginx, men att konfigurera dem individuellt på en Mac kräver en del inställningar. Ett enklare alternativ för en komplett webbservermiljö på Mac är att använda MAMP, vilket gör att konfigurera och starta en fullständig Apache, MySQL, PHP-miljö på Macen ungefär så enkelt som det blir.

Känner du till några andra intressanta Python-tips eller trick? Känner du till några andra användbara python-kommandosträngar för att starta http-servrar eller på annat sätt? Dela med oss ​​i kommentarerna nedan!

Hur man startar en enkel webbserver i Python 3 på Mac