🐍 Итоги недели в мире Python и обзоры новых инструментов: как превратить изображение в видео

Привет!

Всю неделю мы мониторим интернет, чтобы в воскресенье прислать тебе интересное письмо. Наша цель – держать читателей в курсе последних открытий и тенденций в мире Python. В еженедельных письмах ты найдешь:

  • Новые возможности в последних версиях Python
  • Работа с базами данных и SQL в Python.
  • Веб-разработка на Django и Flask.
  • Машинное обучение и анализ данных с помощью Python.
  • Автоматизация и работа с API на Python.
  • Тестирование и отладка кода на Python.
  • Задачи для новичков с решениями.

10 причин, по которым стоит выбрать Django вместо FastAPI; Как устанавливать и запускать Python-приложения с помощью pipx; Как вычислить косинусное сходство.

👨🏻‍💼 Как устанавливать и запускать Python-приложения с помощью pipx

Менеджер pipx предлагает массу преимуществ в сравнении со стандартным pip. Вот некоторые из них:

Изоляция приложений

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

Глобальная доступность

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

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

Легкость управления зависимостями

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

Безопасность

Установка пакетов с помощью pip в глобальную среду Python может привести к загрязнению системы и конфликтам с другими проектами. pipx устраняет эту проблему, устанавливая приложения в изолированные виртуальные окружения, не затрагивая глобальную среду.

Одноразовые запуски

Иногда нужно протестировать или использовать определенное приложение только один раз. pipx позволяет запускать такие одноразовые приложения из PyPI во временных виртуальных окружениях, не устанавливая их постоянно.

Более подробно основные возможности pipx рассматриваются в этой статье.

💬 Как автоматически создавать субтитры

В статье рассматривается простейший способ транскрипции видео и создания субтитров – с помощью Python, Whisper и FFmpeg:

  • После создания виртуального окружения и установки нужных зависимостей автор показывает, как настроить модель Whisper на использование CPU вместо GPU.
  • Затем аудио из видеофайла input.mp4 загружается в модель.
  • Модель транскрибирует аудио, преобразуя его в текст с временными метками.
  • Результаты транскрипции выравниваются с помощью дополнительной модели выравнивания.
  • Полученные текстовые сегменты с временными метками сохраняются в файл субтитров subtitles.srt.
  • Для добавления субтитров к видео используется библиотека FFmpeg, после чего выходной файл с наложенными субтитрами сохраняется как output.mp4.

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

👨🏻👨 Как вычислить косинусное сходство

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

Расхождения между «собакой» и «кирпичом» и между «собакой» и «кошкой»

Косинусное сходство лежит в диапазоне от 0 до 1, где 1 означает полное совпадение векторов, а 0 — их полное различие:

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

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

🎸 10 причин, по которым стоит выбрать Django вместо FastAPI

FastAPI предлагает производительное, асинхронное, компактное и современное решение для разработки бэкенда и API на Python по сравнению с более зрелым, но несколько более громоздким Django. И все же многие опытные бэкендеры предпочитают Django. Один из таких разработчиков поделился доводами в пользу Django:

  • Проверенная надежность вместо модных фишек. Стабильность – превыше всего, а Django – образец стабильности, с минимальным количеством серьезных изменений и регрессий на протяжении многих лет. Каждое обновление тщательно тестируется, а сам фреймворк имеет минимум внешних зависимостей, что помогает избежать значительных проблем.
  • Обилие справочных ресурсов. За 18 лет существования Django в интернете накопилось огромное количество ресурсов, многие из которых до сих пор актуальны. Ответы на Stack Overflow остаются действительными годами, а ChatGPT предоставляет корректные ответы, основанные на огромном объеме полезного и релевантного контента.
  • Гибкость. Django одинаково хорошо подходит и для бэкенда, и для фулстек-разработки.
  • Более удобная ORM. При работе с FastAPI можно использовать несколько ORM, но выбор менее распространенного инструмента несет свои проблемы, включая меньшее количество документации и поддержки.
  • Ограниченная полезность асинхронных возможностей. Одним из преимуществ FastAPI считается встроенная поддержка ASGI-сервер, но на практике такая функциональность требуется не так уж часто. Для действительно асинхронных задач достаточно инструментов вроде Celery, а для вебсокетов можно использовать решения типа Soketi или Pusher.
  • Вводящие в заблуждение утверждения о «меньшем количестве шаблонного кода». Легкость запуска проекта уровня hello world не равнозначна простоте управления и масштабирования со временем.
  • Ценность конвенций. Конвенции Django могут показаться жесткими, но на самом деле они помогают понять оптимальные архитектурные практики и избежать попадания в типичные ловушки.
  • Производительность – не самое главное. Хотя Django – не самый производительный фреймворк, особенно в сравнении с FastAPI, на самом деле навыки разработчика влияют на проблемы с производительностью гораздо больше, чем внутренние возможности используемой технологии. Кроме того, не каждый проект требует экстремальной производительности, а для тех, что требуют, Python – не лучший выбор.
  • Потенциальные проблемы с поддержкой проекта. В отличие от FastAPI, разработкой и поддержкой Django занимается большая команда.
  • Иногда лучше выбрать TypeScript-фреймворк. Для проектов с относительно простым бэкендом оптимальным выбором может быть не Django и не FastAPI, а фреймворк типа AdonisJS, в сочетании с ORM вроде Prisma: это упрощает управление проектом за счет единого языка для фронтенда и бэкенда.

📺📜 Видео туториалы

Основные приемы работы с SQLAlchemy

SQLAlchemy – библиотека, предназначенная для работы с реляционными базами данных. Она состоит из двух основных компонентов – Core и ORM:

  • SQLAlchemy Core представляет собой абстракцию над SQL, позволяющую превращать Python-код в понятные для баз данных запросы. Этот компонент понимает, с каким именно типом базы данных происходит взаимодействие.
  • SQLAlchemy ORM предоставляет удобный интерфейс для управления базами данных, позволяя работать с данными с помощью обычного Python-кода, без необходимости писать запросы на языке SQL.

Библиотека умеет выполнять все запросы, доступные в SQL, и поддерживает множество популярных диалектов, включая SQLite, PostgreSQL и MySQL, что позволяет разработчикам использовать одни и те же универсальные методы для работы с различными СУБД. Это видео покажет основные приемы работы с библиотекой

Клон ChatGPT на Django

Автор видео показывает, как сделать аналог знаменитого чат-бота с помощью Django, вебсокетов (Channels) и HTMX.

7 примеров использования GeneratedField в Django

В 6-минутном видео разработчик демонстрирует 7 практических примеров использования новой фичи Django 5.0 – GeneratedField. Вот что можно сделать с ее помощью:

Код и пояснения к примерам можно посмотреть здесь.

  • Выполнить конкатенацию строк и получить инициалы пользователя.
  • пределить день недели и выяснить, является ли он выходным.
  • Конвертировать сумму из одной валюты в другую с учетом обменного курса.
  • Вычислить срок работы сотрудника.
  • Определить сумму скидки в зависимости от суммарной стоимости покупки.
  • Рассчитать индекс массы тела.
  • Подсчитать увеличение депозита с помощью формулы сложного процента.

Код и пояснения к примерам можно посмотреть здесь.

🛠 Инструменты

Tkinter Designer – автоматически конвертирует дизайны Figma в код Tkinter GUI.

Интерфейс плеера CodTubify сделан с помощью Tkinter Designer

SentenceTransformers – продвинутый фреймворк для создания векторных представлений текста и изображений.

drawpyo – библиотека для визуализации диаграмм, карт и схем Draw.io.

Great Tables – создает привлекательные таблицы для визуализации данных из датафреймов Pandas и Polars.

Эти составные элементы в Great Tables можно комбинировать, как угодно

pre-commit – менеджер для управления Git-хуками. Хуки – это автоматические проверки кода, которые выполняются перед git commit. Если какая-либо из проверок вызовет ошибку, коммит будет отменен, чтобы разработчик мог исправить проблему перед повторной попыткой. Подробная инструкция по использованию pre-commit опубликована здесь.

🔥 Интересные проекты на Python

FreeAskInternet – полностью локальный ИИ-поисковик: не использует платные AP-ключи сторонних LLL-провайдеров, не нуждается в GPU и не отправляет данные третьим лицам.

AniPortrait – ИИ-инструмент для превращения изображений и записи голоса в реалистичную анимацию. Модель принимает фотореференс и аудиозапись, и выдает видеоролик с персонажем, произносящим текст из аудио. Результат выглядит очень естественно и почти не отличим от обычной видеозаписи, сделанной камерой (или от профессиональной анимации в случае с графикой). У проекта есть демо на Hugging Face.

Анимация изображения производится с учетом речи персонажа

Автор рассылки: Наталья Кайда

0
Комментарии
-3 комментариев
Раскрывать всегда