выполнение скрипта python на сервере

Несколько советов по организации Python-приложения на сервере

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

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

Я работаю, в основном, с Python/Django стеком, поэтому все примеры будут, в первую очередь, применительно к этому набору. Также ключевые технологии: Ubuntu (17.10), Python3 (3.6).

Предполагается что вы делаете все грамотно, приложение хранится в репозитории, деплоится в отдельную папку на сервере, используется, например, virtualenv. Для запуска используется отдельно созданный юзер, который имеет достаточно прав, но не слишком много (например не имеет sudo и не разрешен логин по ssh).

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

Даже на рабочем компьютере (ноутбуке) где вы пишете код у вас в папке проекта не должно быть ничего что бы вы не могли закачать на продакшен. Имеется в виду порочная практика использования файлика «local_settings.py» в папке settings внутри проекта (как вариант — development_settings.py). Я разберу этот пример ниже.

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

Например, ротация логов. В интернете попадаются сложные и изощренные способы начиная от стандартного RotatingFileHandler и заканчивая написанием собственного демона на сокетах для записи логов из нескольких источников. Проблемы начинаются из-за желания делать все на «чистом Python». Это глупо и неэффективно, зато приносит кучу возможных мест возникновения ошибок.

Используйте сервис logrotate. Ниже приводится простой конфиг для логов celery.

Стандартными средствами пишем файлик /var/log/myproject/celery.log, ежедневно он кладется в папку /var/log/myproject/archive/ и к имени добавляется суффикс предыдущего дня.

Если у вас лог пишется очень быстро и вы хотите его ротировать каждый час, то в конфиге перекомментируйте строчки «daily» и «hourly». Также нужно настроить logrotate чтобы он запускался каждый час (по умолчанию обычно ежедневно). Выполните в bash:

Конфиг (файлик myservice) надо положить в папку logrotate

copytruncate важна по той причине, что при ротировании файл не будет закрыт. Поскольку мы ротируем файл на «живой» системе, файл открыт и сервисы, которые в него пишут, делают это по какому-то файловому дескриптору. Если вы просто переместите файл и создадите новый пустой, то он не будет использоваться. copytruncate говорит что нужно скопировать содержимое, а потом очистить файл, но не закрывать.

Сервисы

Как вы запускаете ваше приложение? Есть куча разных способов. По моим наблюдения основные такие:

Все они имеют свои плюсы, но, на мой взгляд, они имеют еще больше минусов.

Я не буду здесь рассматривать Docker. Во-первых, у меня не так много опыта работы с ним. А во-вторых, если вы используете контейнеры, то вам и остальные советы из этой статьи не очень нужны. Там подход уже другой.

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

В Ubuntu начиная с версии 15.04 по-умолчанию поставляется systemd для управления сервисами (и не только).

systemd очень удобен тем, что самостоятельно делает все правильно:

Конечно, если у вас нет systemd, то можно смотреть в сторону supervisord, но у меня довольно большая нелюбовь к этому инструменту и я избегаю его использовать.
Я надеюсь не будет людей, кто будет сомневаться что при наличии systemd использовать supervisord вредно.

Ниже я приведу пример конфига для запуска.

Запуск gunicorn (проксируется через локальный nginx, но это здесь неважно).

Здесь важно не использовать режим демонизации. Мы запускаем gunicorn обычным процессом, а демонизирует его сам systemd, он же и следит за перезапуском при падениях.

Обратите внимание, что мы используем путь к python и gunicorn относительно virtualenv-папки.

Для celery все будет таким же, но строку запуска я рекомендую такой (пути и значения поставьте свои):

Стоит обратить внимание на параметры для перезапуска:

Вкратце это означает следующее: если сервис упал, то запусти его снова через 2 секунды, но не больше 5 раз за 11 секунд. Важно понимать, что если значение в StartLimitIntervalSec будет, например, 9 секунд, то в случае если сервис остановится 5 раз подряд (сразу после запуска), то после пятого падения systemd сдастся и не будет его больше поднимать (2 * 5). Значение 11 выбрано именно с тем, чтобы исключить такой вариает. Если, например, у вас был сетевой сбой на 15 секунд и приложение падает сразу после старта (без таймаута), то пусть уж лучше оно долбит до победного, чем просто останавливается.

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

Однако, с симлинками надо быть осторожными — если у вас проект лежит не на системном диске, то есть вероятность что он может монтироваться после старта сервисов (например, сетевой диск или memory-mapped). В этом случае он просто не запустится. Здесь вам придется гуглить как правильно настроить зависимости, да и вообще конфиг тогда лучше скопировать в папку systemd.
Update: после замечания andreymal я думаю что будет правильнее копировать конфиги в папку и ставить им правильные права:

Еще советую отключить вывод в консоль, иначе все будет попадать в syslog.

Когда у вас все компоненты заведены в systemd, то использование каждого из них сводится к:

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

Для удаленной отладки через консоль (запустит shell_plus из django-extensions):

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

Локальные настройки

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

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

Какие есть самые частые способы хранения таких настроек и какие проблемы с ними:

Я рекомендую именно этот способ. Обычно я для проекта создаю yaml-файл в папке «/usr/local/etc/». У меня написан небольшой модуль, который используя магию хаки загружает переменные из файлика в locals() или globals() импортирующего модуля.

Используется очень просто. Где-то в глубинах settings.py для Django (лучше ближе к концу) достаточно вызвать:

И все содержимое будет замешано в глобальные settings. У меня используется merge для списков и словарей, это может быть не всем удобно. Важно помнить, что Django импортирует только UPPERCASE константы, то есть в файлике настройки первого уровня у вас сразу должны быть в верхнем регистре.

Источник

Как настроить веб-сервер Apache на запуск Python в Windows

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

Я устанавливал веб-сервер по этой инструкции, если вы устанавливали по другой инструкции, то отредактируйте пути под свои значения.

1. Установите Python

Если у вас ещё не установлен Python, то скачайте установщик здесь: https://www.python.org/downloads/windows/ (файл Windows x86-64 executable installer).

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

выполнение скрипта python на сервере. python windows. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-python windows. картинка выполнение скрипта python на сервере. картинка python windows. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

Забегая вперёд скажу — путь до папки с установленным Python нужно будет указывать в начале каждого Python cgi скрипта, поэтому или выберите более простую папку, куда вы устанавливаете Python, либо запомните имя путь до предложенной директории.

В конце программа установки предложила снять максимальное ограничение на длину пути — я согласился (возможно, это делать необязательно):

выполнение скрипта python на сервере. python windows 2. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-python windows 2. картинка выполнение скрипта python на сервере. картинка python windows 2. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

2. Настройка Apache на запуск Python CGI

Теперь откройте для редактирования файл httpd.conf, у меня он расположен по пути C:\Server\bin\Apache24\conf\httpd.conf.

Найдите там строку

и добавьте к ней ExecCGI. Должна получиться такая строка (ВНИМАНИЕ: набор опций у вас может быть другим):

Теперь найдите строку:

Раскомментируйте её, то есть удалите символ # в начале строки и добавьте к концу строки .py. Новая строка будет выглядеть примерно так:

3. Перезапустите Apache

4. Запустите тестовую страницу Python

В папке для ваших сайтов (у меня это C:\Server\data\htdocs\) создайте файл test.py и скопируйте в него:

Обратите внимание на самую верхнюю строку, то есть на C:\Users\Alex\AppData\Local\Programs\Python\Python37\python.exe — вам нужно заменить её на своё значение, указав путь до файла python.exe. Даже если вы выбрали предложенную по умолчанию папку, как минимум, вам нужно заменить имя пользователя Alex на имя своего пользователя.

выполнение скрипта python на сервере. python windows 3. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-python windows 3. картинка выполнение скрипта python на сервере. картинка python windows 3. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

ПРИМЕЧАНИЕ: обратите внимание, что путь до файла python.exe может различаться в зависимости от выбранной папки для установки, имени пользователя (если вы установили в C:\Users\), а также в зависимости от версии, например, это может быть папка Python39:

Отредактируйте самую верхнюю строку в соответствии с вашей установкой.

Источник

Как запускать Python скрипты?

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

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

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

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

выполнение скрипта python на сервере. files. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-files. картинка выполнение скрипта python на сервере. картинка files. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

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

выполнение скрипта python на сервере. cgi bin. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-cgi bin. картинка выполнение скрипта python на сервере. картинка cgi bin. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

выполнение скрипта python на сервере. new file. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-new file. картинка выполнение скрипта python на сервере. картинка new file. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

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

выполнение скрипта python на сервере. prmiss. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-prmiss. картинка выполнение скрипта python на сервере. картинка prmiss. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

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

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

Теперь вы можете попробовать запустить ваш скрипт по адресу http://domain.com/cgi-bin/test.py

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

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

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

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

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

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

выполнение скрипта python на сервере. pytonscripts5. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-pytonscripts5. картинка выполнение скрипта python на сервере. картинка pytonscripts5. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

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

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

выполнение скрипта python на сервере. pytonscripts6. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-pytonscripts6. картинка выполнение скрипта python на сервере. картинка pytonscripts6. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.
5. Откройте фаил и добавьте следующий код

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

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

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

выполнение скрипта python на сервере. pytonscripts7. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-pytonscripts7. картинка выполнение скрипта python на сервере. картинка pytonscripts7. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

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

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

Теперь для запуска скрипта вы можете использовать путь http://domain.com/cgi-bin/nctest.py

Лучше всего его расположить в папке public_html

После чего вы сможете запускать скрипт по адресу http://domain.com/nctest.py

Источник

Краткое руководство. Выполнение простых скриптов Python с использованием машинного обучения SQL

В этом кратком руководстве вы запустите ряд простых сценариев Python с помощью Служб машинного обучения SQL Server, Служб машинного обучения управляемых экземпляров SQL Azure или в Кластерах больших данных SQL Server. Также вы узнаете, как применить хранимую процедуру sp_execute_external_script для выполнения скрипта в экземпляре SQL Server.

Предварительные требования

Для работы с этим кратким руководством необходимо следующее.

База данных SQL на одной из следующих платформ:

Средство для выполнения SQL-запросов, содержащих сценарии Python. В этом кратком руководстве используется Azure Data Studio.

Выполнение простого сценария

Чтобы выполнить сценарий Python, необходимо передать его в качестве аргумента в системную хранимую процедуру sp_execute_external_script. Эта системная хранимая процедура запускает среду выполнения Python в контексте машинного обучения SQL, передает данные в Python, безопасно управляет пользовательскими сеансами в Python и возвращает результаты на клиент.

На следующих этапах вы запустите этот скрипт Python в базе данных:

Откройте новое окно запроса в среде Azure Data Studio, подключенной к вашему экземпляру SQL.

Далее вычисляется правильный результат, и функция Python print возвращает результат в окне Сообщения.

Он должен выглядеть примерно так.

Результаты

Выполнение сценария Hello World

Типичный пример — сценарий, который просто выводит строку «Hello World». Выполните следующую команду.

В хранимую процедуру sp_execute_external_script передаются следующие входные данные.

Входные данныеОписание
@languageОпределяет вызываемое расширение языка (в данном случае Python).
@scriptОпределяет команды, которые передаются в среду выполнения Python. Весь скрипт Python должен быть включен в этот аргумент в виде текста в Юникоде. Также можно добавить текст в переменную типа nvarchar, а затем вызвать ее.
@input_data_1Данные, возвращаемые запросом, передаются в среду выполнения Python, которая возвращает их в виде кадра данных.
WITH RESULT SETSЭто предложение определяет схему возвращаемой таблицы данных для машинного обучения SQL. В данном случае добавляется «Hello World» в качестве имени столбца и int в качестве типа данных.

Эта команда выводит следующий текст:

Использование входных и выходных данных

По умолчанию процедура sp_execute_external_script принимает в качестве входных данных один набор данных, обычно предоставляемый в виде допустимого SQL-запроса. Затем она возвращает один кадр данных Python в качестве выходных данных.

Сейчас мы будем использовать заданные по умолчанию входные и выходные переменные процедуры sp_execute_external_script : InputDataSet и OutputDataSet.

Создайте небольшую таблицу тестовых данных.

Используйте инструкцию SELECT для запроса в эту таблицу.

Результаты

выполнение скрипта python на сервере. select pythontestdata. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-select pythontestdata. картинка выполнение скрипта python на сервере. картинка select pythontestdata. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

Результаты

выполнение скрипта python на сервере. python output pythontestdata. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-python output pythontestdata. картинка выполнение скрипта python на сервере. картинка python output pythontestdata. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

Теперь измените имена входных и выходных переменных. Имена входных и выходных переменных по умолчанию°— InputDataSet и OutputDataSet. Следующий сценарий изменяет их на SQL_in и SQL_out.

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

Можно также формировать значения только с помощью сценария Python, без каких-либо входных данных (в аргументе @input_data_1 задано пустое значение).

Следующий сценарий выводит текст «hello» и «world».

Результаты

выполнение скрипта python на сервере. python data generated output. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-python data generated output. картинка выполнение скрипта python на сервере. картинка python data generated output. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

В Python начальные пробелы используются для группирования инструкций. Поэтому когда внедренный сценарий Python разделяется на несколько строк, как в предыдущем примере, не пытайтесь выровнять команды Python по одной линии с командами SQL. Например, следующий сценарий выдаст ошибку.

Проверка версии Python

Если вы хотите узнать, какая версия Python установлена на сервере, выполните следующий сценарий.

Функция Python print возвращает версию в окне Сообщения. В приведенном ниже примере можно видеть, что в данном случае установлен Python версии 3.5.2.

Результаты

Список пакетов Python

Корпорация Майкрософт предоставляет ряд пакетов Python, которые устанавливаются вместе со Службами машинного обучения.

Чтобы просмотреть список установленных пакетов Python вместе с их версиями, выполните следующий сценарий.

Список возвращается из pkg_resources.working_set в Python в формате кадра данных.

Результаты

выполнение скрипта python на сервере. python package list. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-python package list. картинка выполнение скрипта python на сервере. картинка python package list. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

Дальнейшие действия

Сведения о том, как применять структуры данных при использовании Python в машинном обучении SQL, см. в этом кратком руководстве:

Источник

Запуск Python и python-скрипт на компьютере

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

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

Где запускать Python-скрипты и как?

Python-код можно запустить одним из следующих способов:

Запуск Python-кода интерактивно

Для запуска интерактивной сессии нужно просто открыть терминал или командную строку и ввести python (или python3 в зависимости от версии). После нажатия Enter запустится интерактивный режим.

Вот как запустить интерактивный режим в разных ОС.

Интерактивный режим в Linux

Откройте терминал. Он должен выглядеть приблизительно вот так :

выполнение скрипта python на сервере. terminal linux python. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-terminal linux python. картинка выполнение скрипта python на сервере. картинка terminal linux python. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

После нажатия Enter будет запущен интерактивный режим Python.

Интерактивный режим в macOS

На устройствах с macOS все работает похожим образом. Изображение ниже демонстрирует интерактивный режим в этой ОС.

выполнение скрипта python на сервере. terminal macos zapusk python. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-terminal macos zapusk python. картинка выполнение скрипта python на сервере. картинка terminal macos zapusk python. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

Интерактивный режим в Windows

выполнение скрипта python на сервере. terminal windows zapusk python. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-terminal windows zapusk python. картинка выполнение скрипта python на сервере. картинка terminal windows zapusk python. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

Запуск Python-скриптов в интерактивном режиме

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

выполнение скрипта python на сервере. zapusk python skriptov v interaktivnom rezhime. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-zapusk python skriptov v interaktivnom rezhime. картинка выполнение скрипта python на сервере. картинка zapusk python skriptov v interaktivnom rezhime. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

Для выхода из интерактивного режима нужно написать следующее:

И нажать Enter. Вы вернетесь в терминал, из которого и начинали.

Есть и другие способы остановки работы с интерактивным режимом Python. В Linux нужно нажать Ctrl + D, а в Windows — Ctrl + Z + Enter.

Стоит отметить, что при использовании этого режима Python-скрипты не сохраняются в локальный файл.

Как выполняются Python-скрипты?

Отличный способ представить, что происходит при выполнении Python-скрипта, — использовать диаграмму ниже. Этот блок представляет собой скрипт (или функцию) Python, а каждый внутренний блок — строка кода.

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

Но и это еще не все.

Блок-схема выполнения кода интерпретатором

Это набор инструкций, которые приводят к финальному результату.

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

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

Как запускать Python-скрипты?

Для запуска Python-скрипта с помощью командной строки сначала нужно сохранить код в локальный файл.

Возьмем в качестве примера файл, который был сохранен как python_script.py. Сохранить его можно вот так:

Сохранить скрипт в текстовом редакторе достаточно легко. Процесс ничем не отличается от сохранения простого текстового файла.

Но если использовать командную строку, то здесь нужны дополнительные шаги. Во-первых, в самом терминале нужно перейти в директорию, где должен быть сохранен файл. Оказавшись в нужной папке, следует выполнить следующую команду (на linux):

После нажатия Enter откроется интерфейс командной строки, который выглядит приблизительно следующим образом:

выполнение скрипта python на сервере. interfejs komandnoj stroki. выполнение скрипта python на сервере фото. выполнение скрипта python на сервере-interfejs komandnoj stroki. картинка выполнение скрипта python на сервере. картинка interfejs komandnoj stroki. В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере.

Теперь можно писать код и с легкостью сохранять его прямо в командной строке.

Как запускать скрипт в командной строке?

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *