{"componentChunkName":"component---src-templates-material-js","path":"/workshops/2021/08/27/pishem-svoego-robota-na-python-urok-15/index.html","result":{"pageContext":{"pageParameters":{"isPreview":false,"isMirror":true,"delay_to_show_donate_popup_seconds":7,"about_page":false,"games_page":true,"games_page_link_in_header":false,"donate_popup_show_ru":true,"donate_popup_title_ru":"Без вас — нас не будет","donate_popup_content_ru":"Помогите нам добывать и рассказывать важные истории. Участие каждого — важно!","donate_popup_show_en":true,"donate_popup_title_en":"We can’t do it alone!","donate_popup_content_en":"Help us uncover and share the stories that matter. Every contribution makes a difference","display_regular_donors_banner":false,"showPatreonMethod":true,"useNewMaterialDonationBanner":true,"new_donations_page_design":true,"donations_popup_variants":{"ru":[{"id":"kc19b","title":"Сохраните журналистику для людей в России ","subtitle":"Читают нас прежде всего люди в России, но будущее «Важных историй» зависит от тех, кто живет за пределами страны. Поддержите нас ежемесячным донатом — сохраните независимую журналистику для ваших близких, которые остаются в России.","is_active":true,"background":"linear-gradient(10deg, #421f20 5%, #994146)"},{"id":"33tc9","title":"У пропаганды есть миллиарды из бюджета. У нас — только вы","subtitle":"Перемены возможны, если независимые от власти журналисты продолжают свою работу день за днем, год за годом. Мы рассказываем важные истории уже шесть лет. Помогите нам продолжать.","is_active":true,"background":"linear-gradient(10deg, #421f20 5%, #994146)"}],"en":[{"id":"nj1py","title":"Important stories don’t tell themselves","subtitle":"Independent journalism comes at a cost. We answer to no owners or advertisers — only to you, our readers.  Your ongoing support allows us to keep exposing the truth. Without you, we won’t be here.","is_active":true,"background":"linear-gradient(10deg, #421f20 5%, #994146)"},{"id":"xdfc1","title":"Help us outlast the Kremlin censorship","subtitle":"Censorship lose to journalism that keeps showing up, year after year. Monthly donors are what make that possible","is_active":true,"background":"linear-gradient(10deg, #421f20 5%, #994146)"},{"id":"ck121","title":"State propaganda has billions to spend. We have only you to rely on","subtitle":"Change happens when independent journalists keep showing up — day after day, year after year. Six years in, we're still showing up. Help us keep going with a monthly donation.","is_active":true,"background":"linear-gradient(10deg, #421f20 5%, #994146)"}]},"feedback_page":true,"donorsCount":0,"showAuthorsRequestAfterMaterial":true,"radioPage":true,"radioExists":{"ru":true,"en":false},"singlePlaylistPath":{"ru":"/radio/2025/12/22/razgovori-ovazhnikh/index.html"},"with_bookmarks":true,"news_feed":true,"news_feed_skeleton":false,"news_page_redesign":true,"with_topics":true,"materials_topics":false,"topics_page":true,"with_pdf_share":false,"with_native_share":false,"preferred_source_page":true,"charon_new_form":true,"preferred_source_promos":true,"charon_en_page":true},"pk":317,"header":"Пишем своего робота на Python. Урок 15","lead":"Запускаем автоматический скрипт на виртуальной машине с удаленного сервера","category":"workshops","entry_image":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-1920x960px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-1920x960px_2x.webp","for_width":1920,"for_height":960,"real_width_1x":1920,"real_width_2x":3840,"real_height_1x":960,"real_height_2x":1920},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-1920x960px_1x.png","url_2x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-1920x960px_2x.png","for_width":1920,"for_height":960,"real_width_1x":1920,"real_width_2x":3840,"real_height_1x":960,"real_height_2x":1920},{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-1272x636px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-1272x636px_2x.webp","for_width":1272,"for_height":636,"real_width_1x":1272,"real_width_2x":2544,"real_height_1x":636,"real_height_2x":1272},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-1272x636px_1x.png","url_2x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-1272x636px_2x.png","for_width":1272,"for_height":636,"real_width_1x":1272,"real_width_2x":2544,"real_height_1x":636,"real_height_2x":1272},{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-912x456px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-912x456px_2x.webp","for_width":912,"for_height":456,"real_width_1x":912,"real_width_2x":1824,"real_height_1x":456,"real_height_2x":912},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-912x456px_1x.png","url_2x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-912x456px_2x.png","for_width":912,"for_height":456,"real_width_1x":912,"real_width_2x":1824,"real_height_1x":456,"real_height_2x":912},{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-600x400px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-600x400px_2x.webp","for_width":600,"for_height":400,"real_width_1x":600,"real_width_2x":1200,"real_height_1x":400,"real_height_2x":800},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-600x400px_1x.png","url_2x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-600x400px_2x.png","for_width":600,"for_height":400,"real_width_1x":600,"real_width_2x":1200,"real_height_1x":400,"real_height_2x":800},{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-360x360px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-360x360px_2x.webp","for_width":360,"for_height":360,"real_width_1x":360,"real_width_2x":720,"real_height_1x":360,"real_height_2x":720},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-360x360px_1x.png","url_2x":"https://static.istories.media/uploaded/images/ab28400305ce44f2a25f48b3ce5958cb-360x360px_2x.png","for_width":360,"for_height":360,"real_width_1x":360,"real_width_2x":720,"real_height_1x":360,"real_height_2x":720}],"entry_image_credit":"","blocks":[{"data":"В прошлых выпусках мы узнали, как запускать скрипты автоматически по расписанию и как создать свою виртуальную машину. Сегодня мы объединим эти знания и удаленно запустим скрипт на виртуальной машине, чтобы его работа не была привязана к вашему компьютеру.","type":"p","className":""},{"data":{"id":2802,"data":{"url":"https://www.youtube.com/embed/JyewZDaeCEc","text":"Съемка и монтаж: Глеб Лиманский","caption":"","provider":"youtube","rawInput":"https://www.youtube.com/watch?v=JyewZDaeCEc","ratio_mobile":"16:9","ratio_desktop":"16:9"},"category":"video-embed"},"type":"video-embed"},{"data":"Для начала запустим виртуальную машину, если она была выключена. Когда слева от названия появится зеленая галочка —&nbsp;машина готова к работе.","type":"p","className":""},{"data":{"id":2797,"data":{"images":[{"credit":"Кликайте на название виртуальной машины","imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/777b027c62c84e80a5bcb809377daed0-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/777b027c62c84e80a5bcb809377daed0-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":416,"real_height_2x":834},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/777b027c62c84e80a5bcb809377daed0-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/777b027c62c84e80a5bcb809377daed0-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":416,"real_height_2x":834}]},{"credit":"Кликайте на треугольник, чтобы запустить ее","imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/19be3bf452f24ac091efb9726cd43aec-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/19be3bf452f24ac091efb9726cd43aec-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":351,"real_height_2x":702},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/19be3bf452f24ac091efb9726cd43aec-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/19be3bf452f24ac091efb9726cd43aec-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":351,"real_height_2x":702}]}]},"category":"two-images-embed"},"type":"two-images-embed"},{"data":"Есть несколько обязательных настроек, что всё работало как надо. Проверьте, чтобы у пунктов «<strong>Allow HTTP traffic</strong>» и «<strong>Allow HTTPS traffic</strong>» стояли галочки, и чтобы ко всем API&nbsp;«облака» был предоставлен полный доступ.","type":"p","className":""},{"data":{"id":2798,"data":{"images":[{"credit":"Разрешена передача трафика по протоколам HTTP и HTTPS","imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/5df3e5265e174626813249a0b0c92a8f-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/5df3e5265e174626813249a0b0c92a8f-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":831,"real_height_2x":1662},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/5df3e5265e174626813249a0b0c92a8f-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/5df3e5265e174626813249a0b0c92a8f-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":831,"real_height_2x":1662}]},{"credit":"Разрешен полный доступ к API Google Cloud","imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/a27975b8c2e34a72b75eb64e601dcbff-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/a27975b8c2e34a72b75eb64e601dcbff-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":658,"real_height_2x":1316},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/a27975b8c2e34a72b75eb64e601dcbff-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/a27975b8c2e34a72b75eb64e601dcbff-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":658,"real_height_2x":1316}]}]},"category":"two-images-embed"},"type":"two-images-embed"},{"data":"Нажмем на «<strong>SSH</strong>» в столбике «<strong>Connect</strong>», чтобы подключиться к виртуальной машине.&nbsp;","type":"p","className":""},{"data":{"id":2799,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/f8f76f4b87fc4a42b39856295ed4fe04-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/f8f76f4b87fc4a42b39856295ed4fe04-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":421,"real_height_2x":842},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/f8f76f4b87fc4a42b39856295ed4fe04-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/f8f76f4b87fc4a42b39856295ed4fe04-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":421,"real_height_2x":842}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"После этого откроется консоль, по своим свойствам идентичная терминалу — она распознает ваш аккаунт. Теперь нужно загрузить файлы нашего проекта на сервер.&nbsp;","type":"p","className":""},{"data":"Создадим директорию командой <strong>mkdir &lt;название&gt;</strong> (у нас оно будет <strong>new_robot</strong>). Проверить, что она появилась в корневом каталоге, можно командой <strong>ls</strong>.","type":"p","className":""},{"data":{"id":2800,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/f2984cb77a7b4e0b9f58de828e23240e-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/f2984cb77a7b4e0b9f58de828e23240e-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":553,"real_height_2x":1106},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/f2984cb77a7b4e0b9f58de828e23240e-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/f2984cb77a7b4e0b9f58de828e23240e-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":553,"real_height_2x":1106}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Чтобы загрузить файл, нажмите на шестеренку в правом верхнем углу и далее на «<strong>Upload file</strong>».&nbsp;","type":"p","className":""},{"data":{"id":2801,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/2a045d74782b42f1a022bff1e7e60ffb-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/2a045d74782b42f1a022bff1e7e60ffb-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":402,"real_height_2x":805},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/2a045d74782b42f1a022bff1e7e60ffb-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/2a045d74782b42f1a022bff1e7e60ffb-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":402,"real_height_2x":805}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Существует другой способ — с помощью специальных команд Google Cloud. Подробнее о них можно узнать в <a href=\"https://cloud.google.com/compute/docs/instances/transfer-files\" data-type=\"usual\" target=\"_blank\">официальном гайде</a>. Этот способ пригодится нам для загрузки, например, файла <strong>.env</strong>, куда мы <a href=\"https://istories.media/workshops/2021/07/27/pishem-svoego-robota-na-python-urok-12/\" data-type=\"usual\" target=\"_blank\">безопасно сохраняли логин и пароль</a> —&nbsp;через «<strong>Upload file</strong>» он не загрузится и даже не отобразится в списке доступных файлов.","type":"p","className":""},{"data":"Команда, которая нам нужна, выглядит так: ","type":"p","className":""},{"data":"<strong>gcloud compute scp ~/robot/.env ~/.env instance-1:~</strong>","type":"p","className":""},{"data":"«<strong>~/robot/.env</strong>» —&nbsp;<em>расположение файла на вашем компьютере.</em>","type":"p","className":""},{"data":"«<strong>~/.env</strong>» —&nbsp;<em>будущее название файла на вашей виртуальной машине.</em>","type":"p","className":""},{"data":"«<strong>instance-1:~</strong>» — <em>название виртуальной машины и будущее расположение файла (в данном случае —&nbsp;корневая директория).</em>","type":"p","className":""},{"data":{"id":2803,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/433b910782794a8abaed31a3a37b6892-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/433b910782794a8abaed31a3a37b6892-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":168,"real_height_2x":336},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/433b910782794a8abaed31a3a37b6892-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/433b910782794a8abaed31a3a37b6892-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":168,"real_height_2x":336}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"После запуска команды у нас попросят уточнить временную зону, нажимаем <strong>Y</strong>. Далее с помощью <strong>cat .env</strong> можем проверить правильность данных в загруженном файле.","type":"p","className":""},{"data":{"id":2804,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/d477040fefe8476ca99793eb5ac41983-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/d477040fefe8476ca99793eb5ac41983-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":378,"real_height_2x":756},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/d477040fefe8476ca99793eb5ac41983-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/d477040fefe8476ca99793eb5ac41983-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":378,"real_height_2x":756}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"После загрузки всех файлов на сервер нужно переместить их в ранее созданную папку. Для этого введем <strong>mv &lt;название файла&gt; &lt;название папки&gt;</strong> для каждого файла.","type":"p","className":""},{"data":{"id":2805,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/ac64391158e54200958cc5f78790e550-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/ac64391158e54200958cc5f78790e550-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":696,"real_height_2x":1393},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/ac64391158e54200958cc5f78790e550-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/ac64391158e54200958cc5f78790e550-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":696,"real_height_2x":1393}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Разберемся, как правильно написать <a href=\"https://istories.media/workshops/2021/08/06/pishem-svoego-robota-na-python-urok-13/\" data-type=\"usual\" target=\"_blank\">bash-файл</a> для виртуальной машины, чтобы скрипт запускался автоматически. Вернемся в окно Python и создадим файл <strong>runVM.sh</strong>. Начало у него стандартное: <strong>#!/bin/bash</strong>. Далее указываем директорию, в которой лежит наш проект. Следующей строкой запускаем главный файл (на нашем сервере по умолчанию установлен <strong>python3</strong>).","type":"p","className":""},{"data":{"id":2806,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/d55c90a5099d4c1f96c60f88f2014c5a-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/d55c90a5099d4c1f96c60f88f2014c5a-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":361,"real_height_2x":722},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/d55c90a5099d4c1f96c60f88f2014c5a-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/d55c90a5099d4c1f96c60f88f2014c5a-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":361,"real_height_2x":722}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Этот файл тоже загрузим на сервер и переместим в папку проекта. Не забудьте с помощью команды <strong>ls</strong> проверить, что в папке находятся все нужные файлы.","type":"p","className":""},{"data":{"id":2807,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/e2bab748f81f4f5fae50e449679260cc-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/e2bab748f81f4f5fae50e449679260cc-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":226,"real_height_2x":452},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/e2bab748f81f4f5fae50e449679260cc-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/e2bab748f81f4f5fae50e449679260cc-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":226,"real_height_2x":452}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Запускаем bash-файл как обычно: командой<strong> bash runVM.sh</strong>. Если необходимо настроить <strong>crontab</strong>, чтобы изменить время и частоту запуска скрипта, сделать это можно точно так же, как мы делали в <a href=\"https://istories.media/workshops/2021/08/06/pishem-svoego-robota-na-python-urok-13/\" data-type=\"usual\" target=\"_blank\">уроке #13</a>.","type":"p","className":""},{"data":"Теперь можете не волноваться, включен ваш компьютер или выключен —&nbsp;скрипт будет запускаться на удаленном сервере до тех пор, пока вы не выключите виртуальную машину.&nbsp;","type":"p","className":""},{"data":"Если у вас что-то не получилось —&nbsp;пишите в наш <a href=\"https://t.me/istories_helloworld\" data-type=\"usual\" target=\"_blank\">Telegram-чат</a>, постараемся подсказать.","type":"p","className":""}],"created_at_date":"2021-08-27","updated_at_date":null,"created_at_date_time":null,"updated_at_date_time":null,"is_exclusive":false,"is_urgent":false,"initially_published_at":"2021-08-29T12:22:34.935Z","has_additional_facts":false,"locale":"ru","has_visualization_without_fallback":false,"spec_project":null,"header_secondary":"","warning":"","is_translated_by_ai":false,"with_donation_banner":true,"donation_banner_header":"","donation_banner_text":"","media_outlet__codename":null,"with_authors_request_banner":false,"faq":[],"_path":"/workshops/2021/08/27/pishem-svoego-robota-na-python-urok-15/","is_published":true,"authors_list":[{"id":8,"lead":"Главная редакторка «Важных историй»","_path":"alesya-marokhovskaya","avatar":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-896x504px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-896x504px_2x.webp","for_width":896,"for_height":504,"original_url":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-original.jpg","real_width_1x":896,"real_width_2x":1792,"real_height_1x":504,"real_height_2x":1008},{"format":"jpg","url_1x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-896x504px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-896x504px_2x.jpg","for_width":896,"for_height":504,"original_url":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-original.jpg","real_width_1x":896,"real_width_2x":1792,"real_height_1x":504,"real_height_2x":1008},{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-688x387px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-688x387px_2x.webp","for_width":688,"for_height":387,"original_url":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-original.jpg","real_width_1x":688,"real_width_2x":1376,"real_height_1x":387,"real_height_2x":774},{"format":"jpg","url_1x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-688x387px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-688x387px_2x.jpg","for_width":688,"for_height":387,"original_url":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-original.jpg","real_width_1x":688,"real_width_2x":1376,"real_height_1x":387,"real_height_2x":774},{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-416x234px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-416x234px_2x.webp","for_width":416,"for_height":234,"original_url":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-original.jpg","real_width_1x":416,"real_width_2x":832,"real_height_1x":234,"real_height_2x":468},{"format":"jpg","url_1x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-416x234px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-416x234px_2x.jpg","for_width":416,"for_height":234,"original_url":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-original.jpg","real_width_1x":416,"real_width_2x":832,"real_height_1x":234,"real_height_2x":468},{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-336x189px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-336x189px_2x.webp","for_width":336,"for_height":189,"original_url":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-original.jpg","real_width_1x":336,"real_width_2x":672,"real_height_1x":188,"real_height_2x":378},{"format":"jpg","url_1x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-336x189px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-336x189px_2x.jpg","for_width":336,"for_height":189,"original_url":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-original.jpg","real_width_1x":336,"real_width_2x":672,"real_height_1x":188,"real_height_2x":378}],"lead_en":"Editor-in-chief","ordering":null,"position":"Редакторка","is_public":true,"last_name":"Мароховская","first_name":"Алеся","position_en":"Editor","last_name_en":"Marokhovskaya","first_name_en":"Alesya"}],"external_authors_list":[],"editors_list":[],"external_editors_list":[],"participants_list":[],"external_participants_list":[],"partners_list":[],"case":null,"translated_material":null,"audio_material":null,"text_material":null,"id":317,"topics":[],"meta":{"og_title":"","og_description":"","twitter_title":"","twitter_description":"","og_image":"https://static.istories.media/uploaded/images/share/bb94ae70d58f4425bae8004c13b40fbb.png","twitter_image":"https://static.istories.media/uploaded/images/share/bb94ae70d58f4425bae8004c13b40fbb.png","vk_image":"https://static.istories.media/uploaded/images/share/vk/34994e6b9c6144f2af5747f92cd0c45b.png"},"tags":["bash","google cloud platform","виртуальная машина","python","linux","crontab"],"playlist":null,"socialMediaBanners":[{"id":10,"text":"У пропаганды есть миллиарды из бюджета. У нас — только вы","link":"","codename":"donation"},{"id":14,"text":"Список погибших и пропавших без вести российских военных","link":"","codename":"haron"},{"id":18,"text":"","link":"","codename":"mobile_app"},{"id":6,"text":"Оставайтесь на связи: подпишитесь на нашу рассылку","link":"","codename":"newsletter"}]}},"staticQueryHashes":["764694655"],"slicesMap":{}}