Как да стартирате прост уеб сървър в Python 3 на Mac

Съдържание:

Anonim

Ако сте потребител на 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 сървъри или по друг начин? Споделете с нас в коментарите по-долу!

Как да стартирате прост уеб сървър в Python 3 на Mac