{"componentChunkName":"component---src-templates-material-js","path":"/workshops/2021/04/16/pishem-svoego-robota-na-python-urok-2/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":252,"header":"Пишем своего робота на Python. Урок 2","lead":"Создаем виртуальное окружение и устанавливаем сторонние библиотеки","category":"workshops","entry_image":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/76cd8d4e069547e4ac217b01d33c7da5-1920x960px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/76cd8d4e069547e4ac217b01d33c7da5-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":"jpg","url_1x":"https://static.istories.media/uploaded/images/76cd8d4e069547e4ac217b01d33c7da5-1920x960px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/76cd8d4e069547e4ac217b01d33c7da5-1920x960px_2x.jpg","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/76cd8d4e069547e4ac217b01d33c7da5-1272x636px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/76cd8d4e069547e4ac217b01d33c7da5-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":"jpg","url_1x":"https://static.istories.media/uploaded/images/76cd8d4e069547e4ac217b01d33c7da5-1272x636px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/76cd8d4e069547e4ac217b01d33c7da5-1272x636px_2x.jpg","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/76cd8d4e069547e4ac217b01d33c7da5-912x456px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/76cd8d4e069547e4ac217b01d33c7da5-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":"jpg","url_1x":"https://static.istories.media/uploaded/images/76cd8d4e069547e4ac217b01d33c7da5-912x456px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/76cd8d4e069547e4ac217b01d33c7da5-912x456px_2x.jpg","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/76cd8d4e069547e4ac217b01d33c7da5-600x400px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/76cd8d4e069547e4ac217b01d33c7da5-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":"jpg","url_1x":"https://static.istories.media/uploaded/images/76cd8d4e069547e4ac217b01d33c7da5-600x400px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/76cd8d4e069547e4ac217b01d33c7da5-600x400px_2x.jpg","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/76cd8d4e069547e4ac217b01d33c7da5-360x360px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/76cd8d4e069547e4ac217b01d33c7da5-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":"jpg","url_1x":"https://static.istories.media/uploaded/images/76cd8d4e069547e4ac217b01d33c7da5-360x360px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/76cd8d4e069547e4ac217b01d33c7da5-360x360px_2x.jpg","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":"Продолжаем наш журналистский проект, в котором мы на практике будем применять наши журналистские знания — мы напишем робота на Python, который еженедельно (или ежедневно, как захотите) будет собирать крупнейшие госконтракты в России, упаковывать их в удобную для анализа форму и отправлять нам на почту.","type":"p","className":""},{"data":"В первом уроке мы установили редактор Visual Studio Code и изучили базовые команды терминала. Сегодня мы поговорим о виртуальном окружении проекта и установим некоторые необходимые библиотеки.&nbsp;","type":"p","className":""},{"data":{"id":3060,"data":{"url":"https://www.youtube.com/embed/H94Aicz-Hyc","text":"Видео: Глеб Лиманский","provider":"youtube","rawInput":"https://youtu.be/H94Aicz-Hyc","ratio_mobile":"16:9","ratio_desktop":"16:9"},"category":"video-embed"},"type":"video-embed"},{"data":"Для чего нужно виртуальное окружение","type":"h2","className":""},{"data":"Когда вы пишите что-то на языке Python, вы почти всегда будете использовать сторонние библиотеки. У этих библиотек есть различные версии. Разные приложения могут использовать одни и те же библиотеки, но разных версий, и если версия библиотеки не будет совпадать с требуемой приложением, могут возникнуть сбои. Как раз для того, чтобы избежать таких ошибок, нужно создавать виртуальное окружение.&nbsp;","type":"p","className":""},{"data":"Создаем виртуальное окружение","type":"h2","className":""},{"data":"Открываем наш проект main.py в Visual Studio Code и проверяем, в какой версии Python мы сейчас работаем. Для этого в терминале печатаем<strong> type python3</strong>. У меня 3.7 — это основная версия Python, установленная на моем компьютере. У вас путь к локации может отличаться, если вы устанавливали Python с помощью Anaconda.&nbsp;","type":"p","className":""},{"data":{"data":{"images":[{"credit":"","caption":"","imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/2ce5ce6ec7fa40adb585e7324b2c959f-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/2ce5ce6ec7fa40adb585e7324b2c959f-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":750,"real_height_2x":1500},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/2ce5ce6ec7fa40adb585e7324b2c959f-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/2ce5ce6ec7fa40adb585e7324b2c959f-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":750,"real_height_2x":1500}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"В Python несколько способов создания виртуального окружения. Мы будем использовать инструмент Pipenv — для начала нам нужно его установить. Пишем в терминале команду<strong> pip install pipenv</strong> и нажимаем «Enter». <strong>pip</strong> это менеджер пакетов, который позволяет устанавливать сторонние библиотеки, <strong>install</strong> это команда установки, а <strong>pipenv</strong>, соответственно&nbsp;—&nbsp;название библиотеки.","type":"p","className":""},{"data":{"data":{"images":[{"credit":"","caption":"","imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/5888debc02534c9fbe4270a924ada467-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/5888debc02534c9fbe4270a924ada467-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":750,"real_height_2x":1500},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/5888debc02534c9fbe4270a924ada467-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/5888debc02534c9fbe4270a924ada467-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":750,"real_height_2x":1500}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Библиотека установлена, теперь создаем виртуальное окружение — печатаем <strong>pipenv shell </strong>и выполняем команду. У нас должно появиться сообщение, что виртуальное окружение успешно создано.","type":"p","className":""},{"data":{"data":{"images":[{"credit":"","caption":"","imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/269804d6d2214c2aba15a450061392e7-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/269804d6d2214c2aba15a450061392e7-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":750,"real_height_2x":1500},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/269804d6d2214c2aba15a450061392e7-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/269804d6d2214c2aba15a450061392e7-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":750,"real_height_2x":1500}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Снова проверим нашу версию Python — вводим <strong>type python3</strong>. Теперь у нас другая версия, изолированная в своем виртуальном окружении. ","type":"p","className":""},{"data":{"data":{"images":[{"credit":"","caption":"","imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/b7222243b51f4fc5897f706532a928c7-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/b7222243b51f4fc5897f706532a928c7-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":750,"real_height_2x":1500},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/b7222243b51f4fc5897f706532a928c7-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/b7222243b51f4fc5897f706532a928c7-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":750,"real_height_2x":1500}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Чтобы убедиться, что мы работаем именно с этой версией Python, нажимаем <strong>Command</strong> (<strong>Ctrl</strong> для Windows) <strong>+ Shift + P</strong> — сверху появляется строка панели управления.&nbsp;Там мы ищем опцию «Select Interpreter». Нам нужно выбрать именно тот интерпретатор, который мы установили в виртуальном окружении. У нас его название начинается с «robot», поэтому печатаем «robot» в той же строке и кликаем на появившееся полное название.","type":"p","className":""},{"data":{"data":{"images":[{"credit":"","caption":"","imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/73082542e6e944a7b4c53ca0e897cb2e-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/73082542e6e944a7b4c53ca0e897cb2e-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":750,"real_height_2x":1500},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/73082542e6e944a7b4c53ca0e897cb2e-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/73082542e6e944a7b4c53ca0e897cb2e-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":750,"real_height_2x":1500}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Если в этом списке нет пути к нужной версии Python, то можно «убить»&nbsp;терминал — нажмите на иконку корзины в окне терминала, снова <strong>Command/Ctrl + Shift + P</strong> и повторите операцию с «Select Interpreter». Если даже это не помогло, попробуйте закрыть и снова открыть приложение Visual Studio Code.&nbsp;","type":"p","className":""},{"data":"Так мы настроили виртуальное окружение. Теперь каждый раз, когда мы будем открывать наш проект, нам нужно будет всего лишь активировать его — для этого нужно ввести в терминале уже знакомую нам команду <strong>pipenv shell</strong>.","type":"p","className":""},{"data":"После создания виртуального окружения в папке приложения появился файл с названием «Pipfile». В нем перечислены требования и необходимые пакеты для нашего проекта. Пока в нашем проекте нет сторонних библиотек, поэтому единственное требование там пока — Python версии 3.7.&nbsp;","type":"p","className":""},{"data":"Устанавливаем первую библиотеку","type":"h2","className":""},{"data":"Первая библиотека, которая понадобится для нашего проекта —&nbsp;Requests, с ее помощью мы будем делать запросы и получать данные из интернета. Для установки печатаем в терминале <strong>pipenv install requests</strong> и нажимаем «Enter».","type":"p","className":""},{"data":{"data":{"images":[{"credit":"","caption":"","imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/40267b19f159497a9e4fba0e6f4c3ade-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/40267b19f159497a9e4fba0e6f4c3ade-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":685,"real_height_2x":1370},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/40267b19f159497a9e4fba0e6f4c3ade-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/40267b19f159497a9e4fba0e6f4c3ade-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":685,"real_height_2x":1370}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Если мы откроем наш Pipfile, то увидим, что библиотека Requests появилась в списке требований.&nbsp; Кроме того, в папке проекта появился еще один новый файл — «Pipfile.lock». ","type":"p","className":""},{"data":{"data":{"images":[{"credit":"","caption":"","imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/efd65cb8b507458db6114020914fb93a-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/efd65cb8b507458db6114020914fb93a-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":750,"real_height_2x":1500},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/efd65cb8b507458db6114020914fb93a-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/efd65cb8b507458db6114020914fb93a-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":750,"real_height_2x":1500}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Здесь находятся расширенные сведения о наших пакетах — например, точная версия библиотеки Request, которую мы установили.&nbsp;","type":"p","className":""},{"data":{"data":{"images":[{"credit":"","caption":"","imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/3bc9c709325240fdb3dfc8ec24cc63e4-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/3bc9c709325240fdb3dfc8ec24cc63e4-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":678,"real_height_2x":1356},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/3bc9c709325240fdb3dfc8ec24cc63e4-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/3bc9c709325240fdb3dfc8ec24cc63e4-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":678,"real_height_2x":1356}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"На сегодня это все. А в следующем уроке мы наконец-то начнем писать код и работать с реальными данными. Появились вопросы? Пишите в наш <a href=\"https://t.me/istories_helloworld\" data-type=\"usual\" target=\"_blank\">чат</a> в Telegram, постараемся ответить.","type":"p","className":""}],"created_at_date":"2021-04-16","updated_at_date":null,"created_at_date_time":null,"updated_at_date_time":null,"is_exclusive":false,"is_urgent":false,"initially_published_at":"2021-04-16T17:07:53.344Z","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/04/16/pishem-svoego-robota-na-python-urok-2/","is_published":true,"authors_list":[{"id":5,"lead":"Редактор «Важных историй»","_path":"roman-anin","avatar":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/1435d3e9c5384ab4902bab6b024b8c38-896x504px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/1435d3e9c5384ab4902bab6b024b8c38-896x504px_2x.webp","for_width":896,"for_height":504,"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/1435d3e9c5384ab4902bab6b024b8c38-896x504px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/1435d3e9c5384ab4902bab6b024b8c38-896x504px_2x.jpg","for_width":896,"for_height":504,"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/1435d3e9c5384ab4902bab6b024b8c38-688x387px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/1435d3e9c5384ab4902bab6b024b8c38-688x387px_2x.webp","for_width":688,"for_height":387,"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/1435d3e9c5384ab4902bab6b024b8c38-688x387px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/1435d3e9c5384ab4902bab6b024b8c38-688x387px_2x.jpg","for_width":688,"for_height":387,"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/1435d3e9c5384ab4902bab6b024b8c38-416x234px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/1435d3e9c5384ab4902bab6b024b8c38-416x234px_2x.webp","for_width":416,"for_height":234,"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/1435d3e9c5384ab4902bab6b024b8c38-416x234px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/1435d3e9c5384ab4902bab6b024b8c38-416x234px_2x.jpg","for_width":416,"for_height":234,"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/1435d3e9c5384ab4902bab6b024b8c38-336x189px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/1435d3e9c5384ab4902bab6b024b8c38-336x189px_2x.webp","for_width":336,"for_height":189,"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/1435d3e9c5384ab4902bab6b024b8c38-336x189px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/1435d3e9c5384ab4902bab6b024b8c38-336x189px_2x.jpg","for_width":336,"for_height":189,"real_width_1x":336,"real_width_2x":672,"real_height_1x":188,"real_height_2x":378}],"lead_en":"","ordering":null,"position":"Редактор","is_public":true,"last_name":"Анин","first_name":"Роман","position_en":"Editor","last_name_en":"Anin","first_name_en":"Roman"}],"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":252,"topics":[],"meta":{"og_title":"","og_description":"","twitter_title":"","twitter_description":"","og_image":"https://static.istories.media/uploaded/images/share/bb24a03ef959432f8d382e64909e43d2.jpg","twitter_image":"https://static.istories.media/uploaded/images/share/bb24a03ef959432f8d382e64909e43d2.jpg","vk_image":"https://static.istories.media/uploaded/images/share/vk/5985a64e0b6a43c5ba7a2245f43b2532.jpg"},"tags":["виртуальное окружение","python","ddj"],"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":{}}