Een eenvoudige webserver starten in Python 3 op Mac
Inhoudsopgave:
Als je een Python-gebruiker bent, ben je misschien al bekend met de handige truc waarmee je direct een eenvoudige webserver kunt maken met behulp van een eenvoudige opdrachtreeks die wordt ingevoerd in de opdrachtregel van Mac OS. Maar als u een Mac Python-gebruiker bent die Python 3 heeft geïnstalleerd of geüpdatet, dan zult u merken dat de traditionele opdrachtreeks van de eerdere Python-versies niet werkt om de webserver in de nieuwe Python 3 te starten.x+ releases.
Maak je geen zorgen, de simpele webserver Python-truc werkt nog steeds in Python 3 voor Mac (en ook voor Linux en Windows natuurlijk, maar we behandelen uiteraard MacOS), het is dat de opdrachtsyntaxis is net iets anders. We laten je zien hoe je een eenvoudige webserver start met Python 3 door het nieuwe Python 3.0+ equivalent van de opdracht python -m SimpleHTTPServer te gebruiken.
Een web-HTTP-server starten in Python 3.0+
We gaan ervan uit dat je Python 3.0+ al op de Mac hebt geïnstalleerd of geüpdatet, deze variant van de opdracht vereist Python 3.0 of nieuwer.
Voer vanaf de opdrachtregel de volgende syntaxis exact in:
python -m http.server
OF (afhankelijk van hoe Python 3.x is geïnstalleerd en benoemd):
python3 -m http.server
Klik op Return en Python 3 start direct een eenvoudige HTTP-server vanuit de directory waarin de opdracht is uitgevoerd.
De http.server in Python 3 draait in de terminal, als er geen webbestand in de directory staat, wordt de directory-index zelf getoond.
U kunt dit direct testen door de volgende URL in een willekeurige webbrowser op de computer te openen:
http://0.0.0.0:8000
Alle webserveractiviteit, zoals toegang tot individuele bestanden, mappen, mappen, enz., wordt live weergegeven in het actieve Python-terminalvenster, net zoals het volgen van weblogs op een Apache- of Nginx-server .
Belangrijke opmerking: als u python en python3 gelijktijdig hebt geïnstalleerd, moet u mogelijk de syntaxis iets wijzigen om te verwijzen naar python3 en python2 of een andere python-versie. Dit hangt af van hoe je hebt geüpdatet naar Python 3 op de Mac, maar een veelvoorkomend voorbeeld is het gebruik van de opdracht 'python3':
python3 -m http.server
Klik net als voorheen op Return en de active directory wordt omgezet in een webserver.
Wat is het Python3-equivalent van python -m CGIHTTPServer?
Een andere veel voorkomende truc is om de CGI-server (Common Gateway Interface) in Python te gebruiken voor CGI-scripts in python of perl. Dus als u het python3-equivalent van de opdracht "python -m CGIHTTPServer" voor CGI moet uitvoeren, zou dat als volgt zijn:
python3 -m http.server --cgi
Als alternatief, als Python 3 is geïnstalleerd en de naam python heeft gekregen, zou de opdracht simpelweg zijn:
python -m http.server --cgi
Hoe dan ook, je hebt de vlag –cgi nodig om de CGI HTTP-server in Python 3 te starten.
Ik krijg de foutmelding "/usr/bin/python: geen module met de naam http", wat nu?
Als je een "/usr/bin/python: No module named http"-fout ziet wanneer je probeert de python -m http.server-opdrachtreeks uit te voeren, dan gebruik je hoogstwaarschijnlijk geen Python 3, of u gebruikt de verkeerde opdracht voor python3 (d.w.z. python versus python3, afhankelijk van hoe de versie wordt genoemd en hoe deze is geïnstalleerd of bijgewerkt op de Mac). Het is ook mogelijk dat Python helemaal niet op de computer is geïnstalleerd, hoewel dat minder waarschijnlijk is voor Macs omdat Python2 standaard op Mac OS is geïnstalleerd, hoewel gebruikers handmatig de bijgewerkte Python 3.x op de Mac moeten installeren, die tegelijkertijd het origineel behoudt Releaseversie van Python 2.x. Meestal wordt dit bereikt met Homebrew.
Wijzig de syntaxis zoals hierboven vermeld, of als u een eerdere Python-versie gebruikt, probeer dan de opdracht "python -m SimpleHTTPServer" uit Python 2 en eerder.
Natuurlijk zijn de eenvoudige webservers van Python niet bedoeld voor productieomgevingen en zijn ze eigenlijk gewoon het beste voor een snel kladblok of testomgeving. Als je een webserver wilt draaien die publiekelijk gericht is of gewoon robuuster in het algemeen, zou je iets als Apache of Nginx willen gebruiken, hoewel het configureren van deze afzonderlijk op een Mac enige configuratie vereist. Een eenvoudigere optie voor een volledige webserveromgeving op de Mac is het gebruik van MAMP, waarmee het instellen en starten van een volledige Apache-, MySQL- en PHP-omgeving op de Mac zo eenvoudig mogelijk wordt.
Kent u nog andere interessante tips of trucs voor Python? Kent u andere nuttige python-opdrachtstrings voor het starten van http-servers of anderszins? Deel het met ons in de reacties hieronder!