<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Евгений Лукин: заметки с тегом Python</title>
<link>https://evgenylukin.ru/blog/tags/python/</link>
<description>Заметки, конспекты</description>
<author>Евгений Лукин</author>
<language>ru</language>
<generator>E2 (v3849; Aegea)</generator>

<itunes:owner>
<itunes:name>Евгений Лукин</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Заметки, конспекты</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Как сделать классный Python-пакет</title>
<guid isPermaLink="false">101</guid>
<link>https://evgenylukin.ru/blog/all/kak-sdelat-klassny-python-paket/</link>
<pubDate>Tue, 06 May 2025 13:00:15 +0300</pubDate>
<author>Евгений Лукин</author>
<comments>https://evgenylukin.ru/blog/all/kak-sdelat-klassny-python-paket/</comments>
<description>
&lt;p&gt;&lt;a href="https://antonz.ru/packaging/"&gt;https://antonz.ru/packaging/&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>TA-Lib Python3 — установка на Windows 11</title>
<guid isPermaLink="false">99</guid>
<link>https://evgenylukin.ru/blog/all/ta-lib-python3-ustanovka-na-windows-11/</link>
<pubDate>Sun, 22 Sep 2024 11:17:41 +0300</pubDate>
<author>Евгений Лукин</author>
<comments>https://evgenylukin.ru/blog/all/ta-lib-python3-ustanovka-na-windows-11/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://evgenylukin.ru/blog/pictures/image-7.png" width="639" height="283" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;У меня Windows 11, 64-разрядная OS, Python 3.11&lt;/div&gt;
&lt;/div&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Скачал архив с библиотекой с официального сайта &lt;a href="https://ta-lib.org/install/"&gt;https://ta-lib.org/install/&lt;/a&gt; и распаковал в C:\ta-lib&lt;/li&gt;
&lt;li&gt;Установил Visual Studio Community&lt;/li&gt;
&lt;li&gt;Запустил x64 Native Tools Command Prompt for VS 2022&lt;/li&gt;
&lt;li&gt;Перешёл в нужный каталог&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;cd C:\ta-lib\c\make\cdr\win32\msvc&lt;/code&gt;&lt;/pre&gt;&lt;ol start="5"&gt;
&lt;li&gt;Запустил установку командой&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;nmake&lt;/code&gt;&lt;/pre&gt;&lt;ol start="6"&gt;
&lt;li&gt;Скачал .whl файл для своей системы и версии python с &lt;a href="https://github.com/cgohlke/talib-build/releases"&gt;https://github.com/cgohlke/talib-build/releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;В виртуальном окружении проекта перешёл в папку со скачаным .whl и установил&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;pip install TA_Lib-0.4.32-cp311-cp311-win_amd64.whl&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Python — экспорт в XLSX</title>
<guid isPermaLink="false">94</guid>
<link>https://evgenylukin.ru/blog/all/python-eksport-v-xlsx/</link>
<pubDate>Sun, 05 Feb 2023 11:57:50 +0300</pubDate>
<author>Евгений Лукин</author>
<comments>https://evgenylukin.ru/blog/all/python-eksport-v-xlsx/</comments>
<description>
&lt;p&gt;&lt;a href="https://xlsxwriter.readthedocs.io/format.html"&gt;https://xlsxwriter.readthedocs.io/format.html&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>eel</title>
<guid isPermaLink="false">92</guid>
<link>https://evgenylukin.ru/blog/all/eel-2/</link>
<pubDate>Sun, 08 Jan 2023 17:45:15 +0300</pubDate>
<author>Евгений Лукин</author>
<comments>https://evgenylukin.ru/blog/all/eel-2/</comments>
<description>
&lt;p&gt;Документация&lt;br /&gt;
&lt;a href="https://github.com/python-eel/Eel"&gt;https://github.com/python-eel/Eel&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ошибка —noconsole&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/15341606/pyinstaller-program-not-working-if-built-without-console"&gt;https://stackoverflow.com/questions/15341606/pyinstaller-program-not-working-if-built-without-console&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Инструкция по парсингу: Python + Selenium + WebDriver</title>
<guid isPermaLink="false">79</guid>
<link>https://evgenylukin.ru/blog/all/instrukciya-po-parsingu-python-selenium-webdriver/</link>
<pubDate>Sun, 13 Mar 2022 10:04:29 +0300</pubDate>
<author>Евгений Лукин</author>
<comments>https://evgenylukin.ru/blog/all/instrukciya-po-parsingu-python-selenium-webdriver/</comments>
<description>
&lt;p&gt;Чтобы скачать актуальную версию WebDriver переходим на &lt;a href="chrome://settings/help"&gt;chrome://settings/help&lt;/a&gt;, чтобы узнать версию вашего браузера.&lt;br /&gt;
По ссылке &lt;a href="https://sites.google.com/chromium.org/driver/"&gt;https://sites.google.com/chromium.org/driver/&lt;/a&gt; скачиваем вебдрайвер для версии вашего барузера и для вашей операционной системы. Например, у меня это chromedriver_win32.zip&lt;br /&gt;
Извлекаем в папку с проектом файл chromedriver.exe.&lt;br /&gt;
Устанавливаем в окружение библиотеку Selenium.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;from selenium import webdriver
driver = webdriver.Chrome('chromedriver.exe')
driver.get(url)&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Преобразуем проект на Python в исполняемый файл .EXE</title>
<guid isPermaLink="false">78</guid>
<link>https://evgenylukin.ru/blog/all/preobrazuem-proekt-na-python-v-ispolnyaemy-fayl-exe/</link>
<pubDate>Fri, 04 Mar 2022 11:43:21 +0300</pubDate>
<author>Евгений Лукин</author>
<comments>https://evgenylukin.ru/blog/all/preobrazuem-proekt-na-python-v-ispolnyaemy-fayl-exe/</comments>
<description>
&lt;p&gt;&lt;a href="https://www.zacoding.com/en/post/pyinstaller-create-multiple-executables/"&gt;https://www.zacoding.com/en/post/pyinstaller-create-multiple-executables/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.zacoding.com/en/post/python-selenium-to-exe/"&gt;https://www.zacoding.com/en/post/python-selenium-to-exe/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Устанавливаем библиотеку PyInstaller в наше окружение. Важно установить именно в окружение, иначе могут быть проблемы с установкой модулей. Можем получить ошибку «pyinstaller no module named»&lt;br /&gt;
Windows:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;py -m pip install &amp;quot;SomeProject&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Unix/macOS:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;python3 -m pip install &amp;quot;SomeProject&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Преобразуем скрипт в программу&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;pyinstaller myscript.py --onefile --windowed&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;—onefile — приложение в одном файле&lt;br /&gt;
—windowed — не показывать консоль&lt;br /&gt;
—console — показывать консоль&lt;/p&gt;
&lt;p&gt;У вас появятся две новые папки:&lt;br /&gt;
build&lt;br /&gt;
dist&lt;/p&gt;
&lt;p&gt;В папке dist будет лежать наш исполняемый файл.&lt;/p&gt;
&lt;p&gt;Если мы всё равно получаем ошибку «pyinstaller no module named»:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;удалите пакет в папке build и сформируйте заново&lt;/li&gt;
&lt;li&gt;попробуйте добавить установку модуля с помощью&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;pyinstaller myscript.py --onefile --windowed --&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Повторные попытки запросов в Requests</title>
<guid isPermaLink="false">75</guid>
<link>https://evgenylukin.ru/blog/all/povtornye-popytki-zaprosov-v-requests/</link>
<pubDate>Wed, 01 Dec 2021 16:07:26 +0300</pubDate>
<author>Евгений Лукин</author>
<comments>https://evgenylukin.ru/blog/all/povtornye-popytki-zaprosov-v-requests/</comments>
<description>
&lt;p&gt;Для повторных запросов используем http адаптер.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;from requests.adapters import HTTPAdapter

url = 'https://google.com/'

s = requests.Session()
s.mount(url, HTTPAdapter(max_retries=3))
r = s.get(url=url)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href="https://www.coglib.com/~icordasc/blog/2014/12/retries-in-requests.html"&gt;Источник&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Python — объединить значения по ключу</title>
<guid isPermaLink="false">74</guid>
<link>https://evgenylukin.ru/blog/all/python-obedinit-znacheniya-po-klyuchu/</link>
<pubDate>Thu, 11 Nov 2021 13:45:26 +0300</pubDate>
<author>Евгений Лукин</author>
<comments>https://evgenylukin.ru/blog/all/python-obedinit-znacheniya-po-klyuchu/</comments>
<description>
&lt;p&gt;Для объединения значений по ключу используем библиотеку collections.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;from collections import defaultdict

products = defaultdict(list)

for line in file:
    products[sku].append(line)&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Мониторинг авито</title>
<guid isPermaLink="false">68</guid>
<link>https://evgenylukin.ru/blog/all/monitoring-avito/</link>
<pubDate>Mon, 28 Jun 2021 10:52:16 +0300</pubDate>
<author>Евгений Лукин</author>
<comments>https://evgenylukin.ru/blog/all/monitoring-avito/</comments>
<description>
&lt;p&gt;Написал простенький скрипт, который переходит по ссылке с настроенными фильтрами. Скрипт парсит первую страницу с объявлениями и присылает в телеграм сообщение с результатами. Чтобы авито не заблокировал IP — подключил прокси.&lt;/p&gt;
&lt;p&gt;В принципе, всё оказалось реально.&lt;/p&gt;
&lt;p&gt;Как улучшить: парсить раз в минуту или реже, свежие объявления класть в базу данных, сортировать их по каким-нибудь критериям и сначала показывать лучшие.&lt;/p&gt;
</description>
</item>

<item>
<title>Как ускорить парсинг. Selectolax</title>
<guid isPermaLink="false">63</guid>
<link>https://evgenylukin.ru/blog/all/kak-uskorit-parsing-selectolax/</link>
<pubDate>Sat, 30 Jan 2021 09:24:55 +0300</pubDate>
<author>Евгений Лукин</author>
<comments>https://evgenylukin.ru/blog/all/kak-uskorit-parsing-selectolax/</comments>
<description>
&lt;p&gt;Парсить на пайтоне можно не только с помощью БьютифулСуп, но и ещё нескольких библиотек.&lt;/p&gt;
&lt;p&gt;Замер скорости: &lt;a href="https://rushter.com/blog/python-fast-html-parser/"&gt;https://rushter.com/blog/python-fast-html-parser/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Синтаксис Selectolax: &lt;a href="https://github.com/rushter/selectolax/blob/master/examples/walkthrough.ipynb"&gt;https://github.com/rushter/selectolax/blob/master/examples/walkthrough.ipynb&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>О чём забывают в учебниках по языкам программирования</title>
<guid isPermaLink="false">61</guid>
<link>https://evgenylukin.ru/blog/all/o-chyom-zabyvayut-v-uchebnikah-po-yazykam-programmirovaniya/</link>
<pubDate>Sat, 24 Oct 2020 20:00:09 +0300</pubDate>
<author>Евгений Лукин</author>
<comments>https://evgenylukin.ru/blog/all/o-chyom-zabyvayut-v-uchebnikah-po-yazykam-programmirovaniya/</comments>
<description>
&lt;p&gt;Снова взялся за Пайтон.&lt;br /&gt;
Начал читать очередную книгу и подумал вот о чём. Ни в одной книге по языку программирования не учат программированию в принципе. То есть сразу говорят — вот язык, у него такие типы и операции, функции и т. д. Имея ввиду, что читатель уже знает, что такое программирование.&lt;br /&gt;
А я не знаю.&lt;br /&gt;
Не знаю и всё. Да, что-то было в школе, что-то в техникуме, даже что-то в институте. Но мне эта тема была не интересна вообще. Поэтому каждый раз, когда я открываю учебник по программированию — вытираю слёзы бессилия. Опять этот ненавистный «Привет, мир» или ещё хуже «Hello World».&lt;br /&gt;
C++, PHP, Java, теперь Pyton — мне нужны эти языки по работе. Но учить нет никакого желания. Я просто тупо не понимаю, что мне со всем этим делать.&lt;br /&gt;
Было бы круто, если бы введение было примерно таким:&lt;br /&gt;
«Привет, чувак! Прежде чем ты приступишь к обучению этого непростого языка, я хочу спросить тебя — а знаешь ли ты что такое программирование в принципе? Если знаешь — пропускай эту главу. Если же ты впервые начинаешь постигать азы программирования, то во-первых: благодарю тебя, что решил начать с изучения языка %%название любого языка программирования%% — это правильный выбор, а во-вторых: на следующих трёх страницах мы попытаемся коротко рассказать, что такое программирование. После изучения этого введения тебе будет легко ориентироваться в понятиях, которые ты встретишь на страницах этой книги.»&lt;/p&gt;
</description>
</item>

<item>
<title>Как боролся с Питоном</title>
<guid isPermaLink="false">54</guid>
<link>https://evgenylukin.ru/blog/all/kak-borolsya-s-pitonom/</link>
<pubDate>Thu, 14 May 2020 20:27:15 +0300</pubDate>
<author>Евгений Лукин</author>
<comments>https://evgenylukin.ru/blog/all/kak-borolsya-s-pitonom/</comments>
<description>
&lt;p&gt;Смотрю на ютубе видео, как спарсить сайт. Много роликов, как парсить с помощью программ, написанных на Питоне. Питон — это язык программирования Python.&lt;/p&gt;
&lt;p&gt;Смотрю — и ничего не понимаю.&lt;/p&gt;
&lt;p&gt;Все чуваки, кто рассказывают про настройку парсинга, объясняют его так, как будто зритель уже программирует на питоне. Это как если пилот будет показывать, как взлетать и сажать самолёт, показывая какие кнопки нажимать, но не объяснять, почему именно эти кнопки, а не соседние.&lt;/p&gt;
&lt;p&gt;Чтобы всё таки разобраться в вопросе, пошёл изучать основы. Лучше всех о Питоне рассказывается на &lt;a href="https://praktikum.yandex.ru/backend-developer/"&gt;Яндекс Практикуме&lt;/a&gt;.&lt;/p&gt;
</description>
</item>


</channel>
</rss>