Kako zagnati preprost spletni strežnik v Python 3 na Macu
Kazalo:
Če ste uporabnik Pythona, ste morda že seznanjeni s priročnim trikom, ki vam omogoča, da takoj ustvarite preprost spletni strežnik z uporabo preprostega ukaznega niza, vnesenega v ukazno vrstico Mac OS. Če pa uporabljate Mac Python in ste namestili ali posodobili Python 3, boste ugotovili, da tradicionalni ukazni niz iz prejšnjih različic Pythona ne deluje za zagon spletnega strežnika v novem Pythonu 3.x+ izdaje.
Brez skrbi, preprost trik spletnega strežnika Python še vedno deluje v Python 3 za Mac (in seveda tudi za Linux in Windows, vendar očitno pokrivamo MacOS), sintaksa ukaza je samo malo drugačen. Pokazali vam bomo kako zagnati preprost spletni strežnik s Pythonom 3 z uporabo novega Python 3.0+ ekvivalenta ukaza python -m SimpleHTTPServer.
Kako zagnati spletni strežnik HTTP v Python 3.0+
Predvidevamo, da ste že namestili ali posodobili Python 3.0+ na Macu, ta različica ukaza zahteva Python 3.0 ali novejši.
V ukazni vrstici natančno vnesite naslednjo sintakso:
python -m http.server
ALI (odvisno od tega, kako je nameščen in poimenovan Python 3.x):
python3 -m http.server
Pritisnite return in Python 3 bo takoj zagnal preprost strežnik HTTP iz imenika, v katerem je bil ukaz izveden.
http.strežnik v Pythonu 3 se bo izvajal v terminalu, če v imeniku ni spletne datoteke, bo prikazan sam indeks imenika.
To lahko preizkusite takoj, tako da odprete naslednji URL v katerem koli spletnem brskalniku v računalniku:
http://0.0.0.0:8000
Vsa dejavnost spletnega strežnika, kot je dostopanje do posameznih datotek, map, imenikov itd., bo prikazana v aktivnem oknu terminala Python v živo, kot se dogaja, podobno kot spremljanje spletnih dnevnikov na strežniku Apache ali Nginx .
Pomembna opomba: če imate sočasno nameščena python in python3, boste morda morali nekoliko spremeniti sintakso, da se bo sklicevala na python3 in python2 ali drugo različico python. To bo odvisno od tega, kako ste posodobili na Python 3 v Macu, pogost primer pa bi bila uporaba ukaza 'python3' namesto tega:
python3 -m http.server
Tako kot prej pritisnite return in aktivni imenik se bo spremenil v spletni strežnik.
Kaj je Python3 ekvivalent python -m CGIHTTPServer?
Drug pogost trik je uporaba strežnika CGI (Common Gateway Interface) v Pythonu za skripte CGI v python ali perl. Torej, če morate zagnati python3 ekvivalent ukaza "python -m CGIHTTPServer" za CGI, bi to bilo naslednje:
python3 -m http.server --cgi
Če je Python 3 nameščen in imenovan kot python, bi bil ukaz preprosto:
python -m http.server --cgi
V vsakem primeru boste potrebovali zastavico –cgi za zagon strežnika CGI HTTP v Python 3.
Prikaže se napaka, ki pravi »/usr/bin/python: Nobenega modula z imenom http«, kaj zdaj?
Če vidite napako »/usr/bin/python: No module named http«, ko poskušate izvesti ukazni niz python -m http.server, potem najverjetneje ne izvajate Python 3 ali uporabljate napačen ukaz za python3 (tj. python proti python3, odvisno od tega, kako je različica poimenovana in kako je bila nameščena ali posodobljena na Mac). Možno je tudi, da Python sploh ni nameščen v računalniku, čeprav je to manj verjetno pri Macih, ker je Python2 privzeto nameščen v Mac OS, čeprav morajo uporabniki ročno namestiti posodobljeni Python 3.x v Mac, ki hkrati ohranja izvirnik Različica izdaje Python 2.x. Običajno se to doseže z Homebrew.
Spremenite sintakso, kot je navedeno zgoraj, ali če uporabljate starejšo različico Pythona, poskusite z ukazom »python -m SimpleHTTPServer« iz Pythona 2 in starejših.
Seveda preprosti spletni strežniki python niso namenjeni produkcijskim okoljem in so resnično najboljši samo za hitro beležko ali testno okolje. Če želite zagnati spletni strežnik, ki je javno obrnjen ali na splošno samo bolj robusten, bi želeli uporabiti nekaj, kot je Apache ali Nginx, čeprav posamično konfiguriranje teh v Macu zahteva nekaj nastavitev. Enostavnejša možnost za celotno okolje spletnega strežnika na Macu je uporaba MAMP-a, s čimer je nastavitev in zagon polnega okolja Apache, MySQL, PHP na Macu približno tako preprosta.
Ali poznate še kakšne zanimive nasvete ali trike za Python? Ali poznate še kakšne koristne ukazne nize python za zagon strežnikov http ali kako drugače? Delite z nami v komentarjih spodaj!