Как запустить простой веб-сервер в 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.server в 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
Как и раньше, нажмите клавишу возврата, и активный каталог будет превращен в веб-сервер.
Что такое эквивалент 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 для запуска HTTP-сервера CGI в Python 3.
Я получаю сообщение об ошибке «/usr/bin/python: нет модуля с именем http», что дальше?
Если вы видите ошибку «/usr/bin/python: No module named 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-серверов или иным образом? Поделитесь с нами в комментариях ниже!