Jak spustit jednoduchý webový server v Pythonu 3 na Macu
Obsah:
Pokud jste uživatelem Pythonu, možná již znáte praktický trik, který vám umožní okamžitě vytvořit jednoduchý webový server pomocí jednoduchého příkazového řetězce zadaného do příkazového řádku systému Mac OS. Ale pokud jste uživatelem Mac Pythonu, který si nainstaloval nebo aktualizoval Python 3, zjistíte, že tradiční příkazový řetězec z předchozích verzí Pythonu nefunguje pro spuštění webového serveru v novém Pythonu 3.x+ vydání.
Nebojte se, jednoduchý trik s webovým serverem Python stále funguje v Pythonu 3 pro Mac (a samozřejmě také pro Linux a Windows, ale zjevně se zabýváme MacOS), jde o to, že syntaxe příkazu je jen trochu jinak. Ukážeme vám jak spustit jednoduchý webový server s Pythonem 3 pomocí nového ekvivalentu příkazu python -m SimpleHTTPServer v Pythonu 3.0+.
Jak spustit webový HTTP server v Pythonu 3.0+
Předpokládáme, že jste již nainstalovali nebo aktualizovali Python 3.0+ na Mac, tato varianta příkazu vyžaduje Python 3.0 nebo novější.
Z příkazového řádku zadejte přesně následující syntaxi:
python -m http.server
NEBO (podle toho, jak je Python 3.x nainstalován a pojmenován):
python3 -m http.server
Hit return a Python 3 okamžitě spustí jednoduchý HTTP server z adresáře, ve kterém byl příkaz spuštěn.
http.server v Pythonu 3 poběží v terminálu, pokud v adresáři není žádný webový soubor, zobrazí se samotný index adresáře.
To můžete okamžitě vyzkoušet otevřením následující adresy URL v libovolném webovém prohlížeči v počítači:
http://0.0.0.0:8000
Veškerá aktivita webového serveru, jako je přístup k jednotlivým souborům, složkám, adresářům atd., se bude zobrazovat v aktivním okně terminálu Python živě, jak se to stane, něco jako sledování webových protokolů na serveru Apache nebo Nginx .
Důležitá poznámka: pokud máte nainstalované python a python3 současně, možná budete muset mírně změnit syntaxi, aby odkazovala na python3 a python2 nebo jinou verzi pythonu. To bude záviset na tom, jak jste aktualizovali na Python 3 na Macu, ale běžným příkladem by bylo použití příkazu „python3“:
python3 -m http.server
Stejně jako předtím stiskněte return a aktivní adresář se změní na webový server.
Jaký je Python3 ekvivalent python -m CGIHTTPServer?
Dalším běžným trikem je použití serveru CGI (Common Gateway Interface) v Pythonu pro CGI skripty v pythonu nebo perlu. Pokud tedy potřebujete spustit ekvivalent python3 příkazu „python -m CGIHTTPServer“ pro CGI, bylo by to následující:
python3 -m http.server --cgi
Pokud je Python 3 nainstalován a pojmenován jako python, příkaz by byl jednoduše:
python -m http.server --cgi
V obou případech budete ke spuštění serveru CGI HTTP v Pythonu 3 potřebovat příznak –cgi.
Zobrazí se mi chyba „/usr/bin/python: Žádný modul s názvem http“ co teď?
Pokud se při pokusu o spuštění příkazového řetězce python -m http.server zobrazí chyba „/usr/bin/python: Žádný modul s názvem http“, pak s největší pravděpodobností nepoužíváte Python 3 nebo používáte nesprávný příkaz pro python3 (tj. python vs python3, v závislosti na tom, jak je verze pojmenována a jak byla nainstalována nebo aktualizována na Mac). Je také možné, že Python není na počítači vůbec nainstalován, i když to je méně pravděpodobné u počítačů Mac, protože Python2 je na Mac OS nainstalován ve výchozím nastavení, ačkoli uživatelé musí na Mac ručně nainstalovat aktualizovaný Python 3.x, který současně zachová původní verzi. Vydaná verze Pythonu 2.x. Toho se obvykle dosahuje pomocí Homebrew.
Změňte syntaxi, jak je uvedeno výše, nebo pokud používáte starší verzi Pythonu, vyzkoušejte příkaz „python -m SimpleHTTPServer“ z Pythonu 2 a starších.
Jednoduché webové servery python samozřejmě nejsou určeny pro produkční prostředí a jsou opravdu nejlepší pro rychlé zápisníky nebo testovací prostředí. Pokud chcete provozovat webový server, který je veřejně přístupný nebo je celkově robustnější, měli byste jít s něčím jako Apache nebo Nginx, i když jejich individuální konfigurace na Macu vyžaduje určité nastavení. Jednodušší možností pro plnohodnotné prostředí webového serveru na Macu je použití MAMP, díky kterému je nastavení a spuštění plného prostředí Apache, MySQL, PHP na Macu tak jednoduché, jak jen to jde.
Znáte nějaké další zajímavé tipy nebo triky v Pythonu? Víte o nějakých dalších užitečných příkazových řetězcích pythonu pro spouštění http serverů nebo jinak? Podělte se s námi v komentářích níže!