Как запустить html файл через python

Обновлено: 05.07.2024

Каждый разработчик на Python должен знать, как запускать скрипты, потому что это единственный способ проверить работоспособность написанного кода. Чтобы запустить скрипт, программист может использовать:

  • Командную строку (терминал).
  • Интерактивный режим Python.
  • Текстовый редактор или полноценную IDE.
  • Менеджер файлов операционной системы (запуск через графический интерфейс).

Каждый способ имеет свои особенности, поэтому его выбор зависит не только от предпочтений или привычек, но и от того, в какой степени программист хочет контролировать параметры запуска скрипта.

Не нужно путать скрипты и модули, хотя различия между ними не велики. Скрипты — это файлы с исполняемым кодом, а модули — файлы, код которых импортируется в скрипты, проще говоря, библиотеки.

Интерпретатор и его установка

Интерпретатор — это программное обеспечение, которое позволяет запускать скрипты Python. С технической точки зрения интерпретатор является связующим слоем между кодом на Python и машинным кодом.

Интерпретатор используется каждый раз, когда программист запускает код: в интерактивном режиме, через командную строку, всегда.

Установить интерпретатор на Windows не сложно, достаточно найти Python в Microsoft Store и установить.

Если же у вас старая версия Windows и предыдущий вариант не работает, то надо зайти на официальный сайт Python, скачать и запустить установочный файл и следовать инструкциям по установке. Не забудьте при установке выставить галку, чтобы Python был добавлен в Windows PATH.

В Linux обычно ничего устанавливать не требуется, так как Pyton включают в его дистрибутив.

Интерактивный запуск кода Python

Для работы с маленькими кусками кода программисты часто используют режим интерактивного сеанса. В этом режиме введенный код на Python сразу интерпретируется и исполняется. То есть не нужно создавать файл и запускать его.

Чтобы войти в интерактивный режим в Windows, можно использовать один из нескольких способов:

Для выхода из интерактивного режима используются комбинации клавиш: <Ctrl>+<Z> и после этого нажмите <Enter>. Или можно просто прописать в командной строке quit() или exit().

Работать в интерактивном режиме в IDLE можно не только в Windows, но и в Linux, однако в этом нет смысла, потому что терминал Linux достаточно удобен и предоставляет все необходимые инструменты, в отличии от командной строки Windows.

Примеры работы в интерактивном сеансе

Интерактивный сеанс является необходимым и важным инструментом. С его помощью программист может быстро проверить код, в работе которого он не уверен.

Код исполняется сразу после ввода, однако это не значит, что в терминале можно использовать только однострочные операции, например:

Обратите внимание, что для вывода результата выражения в терминал в интерактивном сеансе не нужно использовать функцию print().

В командной строке также можно писать функции, циклы, условия. Кроме того, в интерактивном сеансе можно импортировать модули.

Командная строка автоматически определяет, когда нужно написать многострочную инструкцию, например, если программист хочет объявить функцию, он пишет:

Следующая команда вызывает только что созданную функцию:

Индикаторы ввода остались на этой же строке, потому что мы установили разделитесь функции print с помощью аргумента end = " " .

Запуск скрипта Python через командную строку

Интерактивный сеанс позволяет тестировать код, но как только он завершится, весь код потеряется.

Запишем его в файл world.py. Запустить его через командную строку можно несколькими способами.

В последних версиях Windows можно запустить скрипт Python просто введя его имя:

Такой запуск возможен благодаря тому, что Windows автоматически определяет, какую программу (в данном случае интерпретатор Python) использовать для запуска файла.

В Linux также можно воспользоваться этим способом, но в начале скрипта Python в первой строке должен быть указан полный путь к интерпретатору:

После этого нужно разрешить запуск файла (сделать его исполняемым).

Запуск модуля

Иногда возникает необходимость запустить модуль, как скрипт. Однако при использовании обычного способа командная строка выдает предупреждение о том, что файл нельзя открыть.

Чтобы запустить модуль, как исполняемый файл, нужно воспользоваться командой:

Перенаправление вывода

Теперь запустим. Полная команда выглядит так:

Здесь output.txt – это текстовый файл, в который записывается результат выполнения скрипта.

Операция может использоваться как в операционной системе Windows, так и в Unix-подобных системах. Если файла, в который должен вывестись результат, не существует, система создаст его автоматически.

Например, у нас уже есть файл output.txt со строкой приветствия (после того как мы его создали предыдущей командой). Теперь допишем в него ещё одну строку:

Таким образом можно последовательно запустить несколько раз этот скрипт и в файл будут дописываться всё новые строки приветствия.

Использование IDLE

IDLE – это официальная интегрированная среда разработки, поставляемая вместе с интерпретатором Python.

Она позволяет работать в интерактивном режиме, писать и запускать скрипты. Кроме того, IDLE поддерживает подсветку синтаксиса и отладку.

Работа в интерактивном режиме не отличается от того, что было описано для командной строки Windows и терминала Linux. Программист пишет код, который сразу исполняется интерпретатором.

Запуск скрипта


Запуск скрипта из интерактивного режима

Иногда при работе в интерактивном режиме возникает необходимость проверить код какого-либо скрипта. Не обязательно использовать терминал или отдельно открывать скрипт в IDLE, его можно запустить прямо из интерактивного сеанса различными способами.

import

При импорте модуля в скрипт выполняется весь содержащийся в нём код. Если модуль содержит только объявления функций и классов и присвоение значений, программист ничего не увидит. Но если модуль выводит что-то на экран, работает с файлами, то это отобразится при импорте.

Таким образом можно импортировать модуль в интерактивном режиме, чтобы увидеть результаты его выполнения, однако сделать это можно только один раз, потому что при последующих импортах в пределах одного сеанса ничего не произойдет, так как при каждом новом импорте интерпретатор обращается к модулю, записанному в кэш, а не к реальному файлу.


Здесь импортировал библиотеку sys для того чтобы в пути прописать полный путь до моего модуля. Видно, что приветствие отображается только после первой попытки импорта моего модуля.

Оператор exec() сначала читает содержимое модуля, затем отправляет его в функцию, которая выполняет код.

Синтаксис выглядит так:

Запуск скриптов из текстового редактора или IDE

Если программист работает над крупным проектом, ему не достаточно стандартной IDLE и блокнота. В этом случае используется либо текстовый редактор, либо полноценная среда разработки IDE.

Для большинства текстовых редакторов разработаны плагины, позволяющие запускать скрипты Python одним кликом мыши. Сейчас очень популярен текстовый редактор VS Code. Вот здесь можно описано как с ним работать.

Запуск скриптов через менеджер файлов

Этот способ можно использовать не только в Windows, но и Unix-подобных системах. Однако после запуска окно консоли будет сразу закрываться. Чтобы решить эту проблему, в конце скрипта добавляется оператор input(), таким образом консоль не закроется, пока не получит ввод от пользователя.

Ещё одной проблемой является невозможность обнаружения и отладки ошибок. Даже если программист добавил оператор input(), при возникновении ошибки в процессе выполнения скрипта консоль закроется.

Это самый ненадёжный способ, который накладывает на программиста много ограничений. Лучше отказаться от идеи пользоваться файловым менеджером во время отладки скриптов и вернуться к стандартным способам запуска через командную строку.

image

«Погоди, что?» – думаю, большинство читателей отреагирует на заголовок именно так.

В смысле «просто использовать Python в браузере»?

Все знают, что в браузерах работает только JavaScript.

Ну, выше приведен скриншот с исходным кодом моего личного сайта. Взгляните, возможно вы увидите для себя что-то новое.

А теперь, давайте поговорим о том, как и насколько хорошо это работает, а также обсудим ряд других альтернатив JavaScript.

Знакомство с Brython

Brython — это реализация Python3, написанная на JavaScript, которая позволяет писать код на Python для веба.

По сути, это JavaScript-библиотека, которая преобразует ваш код на Python в эквивалентный JS и исполняет его в рантайме.

Поскольку написание браузерного кода на Python звучит круто, я решил попробовать.

Разработка «Змейки» на Brython


Вот ссылка на мой сайт, где вы можете попробовать версии «Змейки» на JavaScript и Brython. А вот ссылка на GitHub c исходным кодом.

Для того, чтобы опробовать Brython, я решил написать классическую «Змейку».

Так как я не специалист по работе с Canvas в HTML и не разработчик игр, я решил использовать эту JavaScript-реализацию в качестве отправной точки. Когда-то я уже создавал свою «Змейку» на основе Canvas, но эта реализация более аккуратная и компактная.

А еще автор написал ее менее чем за 5 минут. Надо отдать должное Крису Делеону, это очень впечатляет.

Итак, я добавил к реализации Криса подсчет очков и сохранение лучшего результата, а также немного улучшил интерфейс (добавил кнопку паузы и кнопку с инструкциями). Затем я портировал игру на Brython.

Также я модифицировал его код, чтобы он работал в режиме strict , так как в реализации Криса используются вещи вроде неявных глобальных переменных, которые, на мой взгляд, не отражают того, как выглядит большая часть кода на JS (не критикую автора – он программировал на время). Я хотел получить хорошее сравнение кода на Brython и JS.

JavaScript оказался таким, и я не буду размещать этот код здесь, потому наша цель – сфокусироваться на Brython.

Несмотря на то, что большая часть кода на Brython была «дословным переводом» с JS, некоторые части (например, функционал подсчета очков) были написаны непосредственно на Brython, а затем реализованы на JS – чтобы посмотреть на отличия.

Окончательный результат выглядит следующим образом:


Итак, основываясь на этом фрагменте, давайте разберемся в базовых понятиях Brython

Подключение brython.js

Для использования Brython не требуется установка. Просто импортируйте скрипт внутри head :

Запуск Brython

Для того, чтобы Brython мог транслировать и исполнять код на Python так, будто это код на JS, нам нужно вызвать Brython как раз тогда, когда загрузится тело документа. Например, так:


Этот тег будет выполнять поиск тегов script c типом "text/python" и запускать их код.

API для работы с вебом

JavaScript по умолчанию дает доступ к объектам вроде document и window , необходимым в любом JS-проекте. Соответственно, Brython тоже должен иметь возможность работать с ними.

Для решения этой проблемы создатели Brython могли бы просто дать разработчикам возможность обращаться к этим объектам из кода на Python, но это привело бы к крикам дебаггеров о undefined variable и снижению производительности.

Таким образом, чтобы использовать эти API, мы должны импортировать их точно так же, как импортируем любой другой модуль на Python:


И вам не нужно выполнять команду pip install . В конце концов, вы вставляете все это в HTML! Просто добавьте требуемые импорты, с остальным разберется Brython.

Чтобы увидеть насколько хорошо все это работает, я попробовал использовать несколько различных методов из Web API: alert , setInterval , addEventListener и т.д. Все они сработали так, как должны были.

Встроенные объекты и методы JavaScript

В «Змейке», как только змея съест яблоко, нам нужно сгенерировать новое яблоко в случайном месте.

Однако, я не могу использовать модуль random из библиотеки Python*. Так как же я могу сгенерировать случайное число (без написания собственной библиотеки)?

Оказалось, что в Brython более широкая поддержка JavaScript, чем я думал. Смотрите:


Благодаря модулю javascript , если есть объект, к которому я могу получить доступ с помощью JS, то я могу получить к нему доступ с помощью Brython.

Если я импортирую JavaScript-библиотеку (jQuery, Bootstrap) и захочу использовать ее методы — я могу сделать это с помощью from javascript import <библиотека> . И, естественно, я также могу использовать встроенные JS-объекты, например, Date или String .

*По всей видимости, Brython поставляется с рядом стандартных библиотек Python, реализованных непосредственно на JavaScript, и если у какого-то модуля нет JS-версии, то вы все равно сможете импортировать его. Brython получит версию на чистом Python и код импортированного модуля будет работать вместе с кодом Brython. Впрочем, модуль random у меня не заработал – но я могу понять, почему.

Специфические конструкции

В Python, если я хочу распаковать список, я могу написать list2 = [*list1] . Также, если я хочу присвоить переменной значения исходя из некоторого условия, я могу написать foo = 10 if condition else 20 .

У этих конструкций есть эквиваленты в JavaScript: оператор spread ( [. arr] ) и тернарный оператор ( let foo = condition ? 10 : 20 ).

Но поддерживает ли их Brython?

Я попробовал их, и они отлично сработали. Вы можете увидеть, что распаковка списка из Python и условное присваивание используются в моем коде.

Отладка

Честно говоря, я думал, что отладка в Brython будет ужасной.

На самом деле все не так уж и плохо.

Конечно, я написал совсем небольшой и не очень сложный проект, но ошибки, брошенные Brython были в основном точными и довольно понятными.

Это верно, по крайней мере, в отношении синтаксических ошибок. Импорт модулей из библиотеки Python – совсем другая история.

Производительность

image

JavaScript Snake

image

Brython Snake

Как и ожидалось, код на Brython работает медленнее, чем JavaScript. В моем случае он был примерно в 1.7 раз медленнее.

Подозреваю, что в более сложных проектах Brython будет в несколько раз медленнее, чем чистый JS.

Тем не менее, вы можете выполнить транспиляцию вашего кода на Brython заранее и использовать на странице только JavaScript, который должен работать лучше.

Я действительно пытался использовать редактор Brython Editor для преобразования моего кода на Brython в JS и запуска получившегося кода на веб-странице, но из-за огромного количества ошибок я пока от этого отказался. Впрочем, я приложил к этому не слишком много усилий.

Заключительные мысли о Brython

Честно говоря, я был весьма впечатлен Brython. Вот несколько плюсов и минусов из моего собственного опыта работы с языком:

  • Мне удалось написать «Змейку» без лишних хлопот, причем опыт отладки оказался на удивление положительным.
  • В моем простом проекте Brython беспрепятственно взаимодействовал с нативными JavaScript-объектами, доступными на странице
  • Я ценю тот факт, что мой код выглядит чище на Python, а также мне нравится, что я могу использовать полезные конструкции из Python для написания браузерного кода.
  • В случае с моей игрой, хоть Brython загружается медленнее, чем JavaScript, пользователь этой разницы не замечает.
  • Мне приятно видеть Python в исходном коде моего сайта.
  • Брайтон работает значительно медленнее, чем чистый JS.
  • Для использования Brython разработчику необходимо иметь опыт работы с JavaScript.
  • Вы неизбежно столкнетесь с большим количеством ошибок и его сайту есть куда расти в плане удобства навигации и возможностей обучения
  • У Brython отсутствует сильная экосистема и инструменты развития.

Тем не менее, я считаю, что в настоящее время Brython больше подходит для JavaScript-разработчиков, знакомых с Python и уставших от JS, а не для Python-разработчиков, которые хотят заниматься веб-разработкой, не изучая JavaScript.

Я думаю, что понимание JavaScript необходимо для того, чтобы хорошо работать с Brython. И если вы решите потратить время на изучение JavaScript, чтобы вам было легче писать на Brython, то вы можете просто использовать JavaScript.

Другие альтернативы JS в браузере

image

Причина, по которой я выбрал Brython, заключалась в том, что из большинства вариантов перехода от Python к JS, о которых я впервые узнал, он был единственным, у кого ведется активная разработка на GitHub. Большинство просмотренных мною транспайлеров из Python в JavaScript не имеют коммитов в течение нескольких лет.

Впрочем, есть и другие альтернативы.

Pyodide, например, кажется интересным вариантом. Он компилирует Python (вместе с его научными библиотеками) в WebAssembly, что позволяет ему запускаться в браузере.

WebAssembly, как следует из названия, является ассемблером для веба. Подобно тому, как ассемблер на наших компьютерах может работать в качестве посредника между языками высокого уровня и машинным кодом, WebAssembly делает то же самое в вебе.

Таким образом, можно написать компилятор, который будет переводить Python (или любой другой язык) в WebAssembly, что позволит ему работать в браузере.

Это амбициозный и перспективный проект, который, скорее всего, приведет к тому, что мы увидим все больше веб-разработок без JavaScript.

Тем не менее, он все еще находится в зачаточном состоянии (

3 года), так что, вероятно, потребуется некоторое время, прежде чем мы увидим, что JavaScript регулярно заменяется другими языками.

И пока мы этого ждем, вам придется воспользоваться инструментами вроде Brython, если вы действительно не можете иметь дело с JavaScript.

Но, честно говоря, это неплохое начало!

image

Узнайте подробности, как получить востребованную профессию с нуля или Level Up по навыкам и зарплате, пройдя платные онлайн-курсы SkillFactory:

В этом руководстве рассказывается о том, как создать и как запустить скрипт на Python.

Программирование или скриптинг?

Обработку данных на основе Python можно разбить на маленькие этапы. Например:

  1. Импорт numpy и pandas.
  2. Загрузка необработанных данных из .csv файла в DataFrame.
  3. Загрузка необработанных данных из словаря Python в другой DataFrame.
  4. Объединение двух фреймов данных.
  5. Сортировка значений.
  6. Заполнение пустых значений.
  7. И так далее…

Можно выполнить эти задачи вручную. Или поместить эти команды в скрипт Python . Это и есть скриптинг.

Скрипт Python похож на сценарий фильма. В нем вы точно записываете, должен делать компьютер.

Как создать скрипт Python

Вы можете использовать любой код, написанный ранее в Jupyter. Например, вот мой Jupyter Notebook .

Как создать скрипт Python

Как превратить код Python для Jupyter Notebook в скрипт Python?

Для этого нужно скопировать все строки из Jupyter Notebook и поместить их в текстовый редактор. После чего сохранить в файл с расширением .py.

Создадим скрипт Python

Если вы находитесь на удаленном сервере, откройте свой любимый текстовый редактор. Для этого введите команду:

Шаг №1 - откройте текстовый редактор.

Вы можете использовать любой текстовый редактор (vim, nano и т. д.).
Но если вы хотите что-то более продвинутое, я настоятельно рекомендую Sublime Text 3.

Шаг №1 - откройте текстовый редактор. - 2

Скопируйте и вставьте весь код из Jupyter Notebook в текстовый редактор:

Шаг №2 - скопируйте и вставьте код!

Шаг №3 - Сохраните файл как файл .py!

После чего mcedit спросит, хотите ли вы сохранить файл? Нажмите: Yes! Затем задайте имя новому текстовому файлу. Скрипты Python имеют собственное расширение: .py.

Шаг №3 - Сохраните файл как файл .py! - 2

Нажмите ОК . Теперь текстовый файл теперь стал скриптом Python.

Вернемся к редактированию файла, набрав команду:

Теперь код выглядит более похожим на Python с различной подсветкой:

Шаг № 4 - Снова откройте текстовый файл

Это потому, что вы добавили расширение .py . В результате этого редактор mcedit распознал текстовый файл как скрипт Python.

Shebang — это строка кода, которую нужно поместить в самом начале скрипта. Его задача – сообщить ОС, что у вас есть исполняемый файл Python3.

Строка shebang для скриптов Python3 выглядит следующим образом:

Шаг № 5 - Добавьте Shebang!

Если честно, ваш скрипт будет работать и без него. Несмотря на это, я предпочитаю добавлять Shebang по нескольким причинам:

  • В среде разработки, в которой доступно сразу несколько версий Python, Shebang прояснит, какой интерпретатор должен выполнить скрипт.
  • Когда один из ваших коллег откроет скрипт, он сразу увидит, на каком языке он написан.

После добавления Shebang, снова сохраните файл и попробуйте запустить скрипт, введя команду:

В некоторых случаях (в зависимости от конфигурации используемого сервера) вы получите ошибку прав доступа:

В Python подобная ошибка прав доступа не возникает. Если вы не столкнулись с этой проблемой, просто перейдите к шагу № 7.

Если у вас возникла ошибка прав доступа, в командной строке введите этот код:

Дополнительно: шаг № 6 - сделать скрипты на Python исполняемыми

Затем введите свой пароль.

Запустите скрипт, введя команду:

В большинстве случаев, когда вы конвертируете проект Jupyter Notebook в скрипт Python, вы не увидите на экране ничего. Это потому, что последняя строка вашего кода была такой:

Шаг № 8 - почему я ничего не вижу?

Вернитесь к своему скрипту и измените последнюю строку на эту:

Шаг № 8 - почему я ничего не вижу? - 2

Нажмите 10-Quit и Save.

Перезапустите скрипт, введя для этого команду:

Шаг № 9 - Вы создали скрипт на Python

Вы создали скрипт на Python, и он работает. Но вы все равно захотите использовать Jupyter Notebook. Так как он является идеальным инструментом для тестирования и настройки процессов. Поэтому:

  1. Я создаю прототип проекта на Python в Jupyter Notebook. Затем создаю код и выясняю, какие шаги необходимы.
  2. Затем удаляю ненужные фрагменты кода и импортированные пакеты, сортирую задачи Python в порядке их выполнения.
  3. Добавляю комментарии к коду.
  4. Перемещаю все в текстовый редактор (Sublime Text или mcedit) и создаю скрипт Python, который можно автоматизировать.

Заключение

Написание и запуск скриптов Python это не магия. Если вы знаете, как писать код на Python, то сможете освоить и скрипты

Пожалуйста, опубликуйте ваши комментарии по текущей теме материала. Мы очень благодарим вас за ваши комментарии, лайки, отклики, подписки, дизлайки!

Первым делом вам надо включить поддержку CGI в тарифе хостинга. Личный кабинет/Хостинг аккаунты/ далее нажмите на домен и внизу найдите поддержку CGI!

После чего вы сможете запускать Python скрипты на хостинге. Обратите внимание! Для запуска стандартных Python скриптов, вам не требуется установка специализированных версий Python в разделе "Настройка Python приложений". Этот раздел служит для установки приложений таких как Django и других. По ссылкам вы можете почитать как устанавливать фреймворки и модули на примере Django и Flask

Всё намного проще.

Мы покажем вам как всё настроить на примере cPanel и "Фаил менеджера", а так же SSH.

1. Войдите Cpanel

2. Перейти в Файлы > Файловый менеджер


3. Перейдите в папку cgi-bin


4. Создайте фаил с расширением .py, для примера test.py в папке /home/cPuser/public_html/cgi-bin (где cPuser ваш логин в cPanel)


5. Установите права 755 на фаил

Примечание: файлы создаются с разрешениями по умолчанию 0644. Фаил .py станет исполняемым при изменении разрешений на 0755.


6. Откройте фаил с помощью правой клавиши мыши и ссылки EDIT либо с помощью кнопки "Редактировать" и добавьте для теста следующий скрипт.

По умолчанию Python находиться по адресу /usr/bin/python

Если вместо запуска скрипта открывается просто текст скрипта или ошибка 500, это может означать что вы не включили поддержку CGI в тарифе вашего хостинг аккаунта.

500 ошибка так же вызывается ошибкой скрипта.

Создание и редактирование P ython скрипта через SSH

1. Соединитесь с cPanel аккаунтом через SSH

2. Перейдите в cgi-bin директорию cd ./public_html/cgi-bin

Проверьте что вы в нужной директории используя команду pwd




3. Создайте фаил с расширением .py. для примера nctest.py в директории /home/cPuser/public_html/cgi-bin directory (где cPuser ваш логин в cPanel)

Для проверки что фаил создался, посмотрите директорию командой ls



4. Измените права на фаил в 0755 запустив команду

chmod 755 /home/cPuser/public_html/cgi-bin/nctest.py
(где cPuser ваш логин в cPanel)




5. Откройте фаил и добавьте следующий код

Вы можете открыть фаил используя программу nano

После добавьте следующий код для тестирования

print "Content-type: text/html\n\n"
print "How to run Python scripts in cPanel"



Примечание: фаил должен начинаться с пути к Python скрипту /usr/bin/python на сервере.

Для сохранения изменений нажмте Crtl+O для Windows или Command+O для Mac OS

Читайте также: