Ako spustiť jednoduchý webový server v Pythone 3 na Macu
Obsah:
Ak ste používateľom Pythonu, možno už poznáte praktický trik, ktorý vám umožní okamžite vytvoriť jednoduchý webový server pomocou jednoduchého príkazového reťazca zadaného do príkazového riadku systému Mac OS. Ale ak ste používateľom Mac Python, ktorý si nainštaloval alebo aktualizoval na Python 3, zistíte, že tradičný príkazový reťazec z predchádzajúcich verzií Pythonu nefunguje na spustenie webového servera v novom Pythone 3.x+ vydaní.
Nebojte sa, jednoduchý trik Pythonu s webovým serverom stále funguje v Pythone 3 pre Mac (a samozrejme aj pre Linux a Windows, ale zjavne pokrývame MacOS), je to tak, že syntax príkazu je len trochu inak. Ukážeme vám ako spustiť jednoduchý webový server s Pythonom 3 pomocou nového ekvivalentu príkazu python -m SimpleHTTPServer pre Python 3.0+.
Ako spustiť webový HTTP server v Pythone 3.0+
Predpokladáme, že ste už nainštalovali alebo aktualizovali Python 3.0+ na Mac, táto variácia príkazu vyžaduje Python 3.0 alebo novší.
V príkazovom riadku zadajte presne nasledujúcu syntax:
python -m http.server
ALEBO (v závislosti od toho, ako je Python 3.x nainštalovaný a pomenovaný):
python3 -m http.server
Hit return a Python 3 okamžite spustí jednoduchý HTTP server z adresára, v ktorom bol príkaz vykonaný.
http.server v Pythone 3 pobeží v termináli, ak sa v adresári nenachádza žiadny webový súbor, zobrazí sa samotný index adresára.
Môžete to okamžite otestovať otvorením nasledujúcej adresy URL v ľubovoľnom webovom prehliadači na počítači:
http://0.0.0.0:8000
Všetky aktivity webového servera, ako je prístup k jednotlivým súborom, priečinkom, adresárom atď., sa budú zobrazovať v aktívnom okne terminálu Python naživo, tak ako sa to deje, ako keby ste sledovali webové protokoly na serveri Apache alebo Nginx .
Dôležitá poznámka: ak máte súčasne nainštalovaný python a python3, možno budete musieť mierne zmeniť syntax tak, aby odkazovala na python3 a python2 alebo inú verziu pythonu. To bude závisieť od toho, ako ste aktualizovali na Python 3 na Macu, ale bežným príkladom by bolo použitie príkazu „python3“:
python3 -m http.server
Rovnako ako predtým stlačte kláves return a aktívny adresár sa zmení na webový server.
Čo je ekvivalentom Python3 pre python -m CGIHTTPServer?
Ďalším bežným trikom je použitie servera CGI (Common Gateway Interface) v Pythone pre CGI skripty v pythone alebo perle. Ak teda potrebujete spustiť ekvivalent python3 príkazu „python -m CGIHTTPServer“ pre CGI, bolo by to nasledovné:
python3 -m http.server --cgi
Alternatívne, ak je Python 3 nainštalovaný a pomenovaný ako python, príkaz by bol jednoducho:
python -m http.server --cgi
V každom prípade budete potrebovať príznak –cgi na spustenie servera CGI HTTP v Pythone 3.
Zobrazí sa mi chyba „/usr/bin/python: Žiadny modul s názvom http“ čo teraz?
Ak sa pri pokuse o vykonanie reťazca príkazu python -m http.server zobrazí chyba „/usr/bin/python: Žiadny modul s názvom http“, potom s najväčšou pravdepodobnosťou nepoužívate Python 3 alebo používate nesprávny príkaz pre python3 (t. j. python vs python3, v závislosti od toho, ako je verzia pomenovaná a ako bola nainštalovaná alebo aktualizovaná na Mac). Je tiež možné, že Python nie je v počítači nainštalovaný vôbec, aj keď je to menej pravdepodobné pre počítače Mac, pretože Python2 je predvolene nainštalovaný v systéme Mac OS, aj keď používatelia musia manuálne nainštalovať aktualizovaný Python 3.x na Mac, ktorý súčasne zachová pôvodný Verzia vydania Pythonu 2.x. Zvyčajne sa to dosiahne pomocou Homebrew.
Zmeňte syntax, ako je uvedené vyššie, alebo ak používate staršiu verziu Pythonu, vyskúšajte príkaz „python -m SimpleHTTPServer“ z Pythonu 2 a starších.
Samozrejme, že jednoduché webové servery python nie sú určené pre produkčné prostredia a sú naozaj najlepšie len pre rýchly zápisník alebo testovacie prostredie. Ak chcete prevádzkovať webový server, ktorý je verejne prístupný alebo je vo všeobecnosti len robustnejší, chceli by ste ísť s niečím ako Apache alebo Nginx, hoci ich konfigurácia jednotlivo na počítači Mac vyžaduje určité nastavenie. Jednoduchšia možnosť pre prostredie plného webového servera na Macu je použiť MAMP, vďaka ktorému je nastavenie a spustenie plného prostredia Apache, MySQL, PHP na Macu také jednoduché, ako sa len dá.
Poznáte nejaké ďalšie zaujímavé tipy alebo triky v jazyku Python? Poznáte nejaké ďalšie užitočné reťazce príkazov pythonu na spustenie serverov http alebo iné? Podeľte sa s nami v komentároch nižšie!