Как да стартирате прост уеб сървър в Python 3 на Mac
Съдържание:
Ако сте потребител на Python, може би вече сте запознати с удобния трик, който ви позволява незабавно да създадете прост уеб сървър, като използвате лесен команден низ, въведен в командния ред на Mac OS. Но ако сте потребител на Mac Python, който е инсталирал или актуализирал до Python 3, тогава ще откриете, че традиционният команден низ от предишните версии на Python не работи за иницииране на уеб сървъра в новия Python 3.x+ издания.
Не се притеснявайте, простият трик на уеб сървъра на Python все още работи в Python 3 за Mac (и за Linux и Windows, разбира се, но ние очевидно покриваме MacOS), това е, че синтаксисът на командата е просто малко по-различен. Ще ви покажем как да стартирате прост уеб сървър с Python 3, като използвате новия еквивалент на Python 3.0+ на командата python -m SimpleHTTPServer.
Как да стартирате уеб HTTP сървър в Python 3.0+
Предполагаме, че вече сте инсталирали или актуализирали до Python 3.0+ на Mac, този вариант на командата изисква Python 3.0 или по-нов.
От командния ред въведете точно следния синтаксис:
python -m http.server
ИЛИ (в зависимост от това как е инсталиран и именуван Python 3.x):
python3 -m http.server
Натиснете return и Python 3 моментално ще стартира обикновен HTTP сървър от директорията, в която е била изпълнена командата.
http.сървърът в Python 3 ще работи в терминала, ако в директорията няма уеб файл, ще се покаже самият индекс на директорията.
Можете да тествате това веднага, като отворите следния URL адрес във всеки уеб браузър на компютъра:
http://0.0.0.0:8000
Цялата активност на уеб сървъра, като достъп до отделни файлове, папки, директории и т.н., ще бъде показана в активния терминален прозорец на Python на живо, както се случва, нещо като проследяване на уеб регистрационни файлове на Apache или Nginx сървър .
Важна забележка: ако имате едновременно инсталирани python и python3, може да се наложи леко да промените синтаксиса, за да препратите към python3 и python2 или друга версия на python. Това ще зависи от това как сте актуализирали до Python 3 на Mac, но често срещан пример би бил използването на командата „python3“ вместо това:
python3 -m http.server
Както преди, натиснете return и активната директория ще се превърне в уеб сървър.
Какъв е еквивалентът на Python3 на python -m CGIHTTPServer?
Друг често срещан трик е да използвате CGI (Common Gateway Interface) сървър в Python за CGI скриптове в python или perl. Следователно, ако трябва да изпълните python3 еквивалента на командата „python -m CGIHTTPServer“ за CGI, това ще бъде както следва:
python3 -m http.server --cgi
Алтернативно, ако Python 3 е инсталиран и наименуван като python, командата ще бъде просто:
python -m http.server --cgi
И в двата случая ще ви трябва флагът –cgi, за да стартирате CGI HTTP сървъра в Python 3.
Получавам грешка, казваща „/usr/bin/python: Няма модул с име http“ сега какво?
Ако видите грешка „/usr/bin/python: Няма модул с име http“, когато се опитвате да изпълните командния низ на python -m http.server, тогава най-вероятно не работите с Python 3 или използвате грешна команда за python3 (т.е. python срещу python3, в зависимост от това как е наименувана версията и как е инсталирана или актуализирана на Mac). Възможно е също така Python изобщо да не е инсталиран на компютъра, въпреки че това е по-малко вероятно за Mac, тъй като Python2 е инсталиран по подразбиране на Mac OS, въпреки че потребителите трябва ръчно да инсталират актуализирания Python 3.x на Mac, който едновременно запазва оригиналния Версия на Python 2.x. Обикновено това се постига с Homebrew.
Променете синтаксиса, както е посочено по-горе, или ако използвате по-ранна версия на Python, опитайте командата „python -m SimpleHTTPServer“ от Python 2 и преди.
Разбира се, простите уеб сървъри на python не са предназначени за производствени среди и те наистина са най-добри за бърз скречпад или тестова среда. Ако искате да стартирате уеб сървър, който е публично изправен или просто по-стабилен като цяло, бихте искали да използвате нещо като Apache или Nginx, въпреки че конфигурирането им поотделно на Mac изисква известна настройка. По-опростена опция за пълна среда на уеб сървър на Mac е използването на MAMP, което прави настройката и стартирането на пълна Apache, MySQL, PHP среда на Mac толкова лесно, колкото може.
Знаете ли други интересни съвети или трикове за Python? Знаете ли за други полезни командни низове на python за стартиране на http сървъри или по друг начин? Споделете с нас в коментарите по-долу!