Как работать с requirements.txt и не запутаться в зависимостях
Когда Python-проект разрастается, в нём появляется десятки библиотек. Чтобы не ставить их вручную и не ломать окружение, используется файл requirements.txt - список всех зависимостей проекта.
Чтобы сохранить список установленных библиотек, достаточно одной команды:
Она выгрузит все текущие пакеты и их версии в requirements.txt.
Чтобы развернуть проект на другой машине или сервере, выполняем:
Все нужные пакеты установятся автоматически — с нужными версиями.
В requirements.txt можно указывать версии библиотек по-разному:
И не забывай: комментарии начинаются с #.
Если проект большой то можно разбить зависимости:
Так ты отделишь продакшен-зависимости от тех, что нужны только для разработки.
Чтобы зафиксировать версии пакетов без прямого указания в основном файле, можно использовать constraints.txt:
Пример:
requirements.txt:
constraints.txt:
Для разных задач - свои зависимости:
Пример:
Чтобы подтянуть свежие версии библиотек:
Всегда изолируй зависимости:
👉   @PythonPortal
Когда Python-проект разрастается, в нём появляется десятки библиотек. Чтобы не ставить их вручную и не ломать окружение, используется файл requirements.txt - список всех зависимостей проекта.
Чтобы сохранить список установленных библиотек, достаточно одной команды:
pip freeze > requirements.txt
Она выгрузит все текущие пакеты и их версии в requirements.txt.
Чтобы развернуть проект на другой машине или сервере, выполняем:
pip install -r requirements.txt
Все нужные пакеты установятся автоматически — с нужными версиями.
В requirements.txt можно указывать версии библиотек по-разному:
numpy==1.21.0 # строгая версия
pandas>=1.3.0 # версия не ниже указанной
requests # установится последняя
И не забывай: комментарии начинаются с #.
# Основные зависимости
numpy==1.21.0
pandas>=1.3.0
# Для тестов
pytest
Если проект большой то можно разбить зависимости:
# requirements.txt
-r base.txt
-r dev.txt
Так ты отделишь продакшен-зависимости от тех, что нужны только для разработки.
Чтобы зафиксировать версии пакетов без прямого указания в основном файле, можно использовать constraints.txt:
pip install -r requirements.txt -c constraints.txt
Пример:
requirements.txt:
numpy==1.21.0
pandas
constraints.txt:
pandas<=1.3.5
Для разных задач - свои зависимости:
requirements-dev.txt # разработка
requirements-test.txt # тесты
requirements-prod.txt # продакшен
Пример:
pip install -r requirements-dev.txt
Чтобы подтянуть свежие версии библиотек:
pip install --upgrade -r requirements.txt
Всегда изолируй зависимости:
python -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows
pip install -r requirements.txt
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤23👍13🔥11💊1
  Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤36🤔19👍10🔥9
  This media is not supported in your browser
    VIEW IN TELEGRAM
  Бесплатный курс от MIT для начинающих по основам компьютерных наук. В этих классических лекциях разбираются такие концепции, как дизайн языков программирования, абстракция и рекурсия: https://bit.ly/46zVDEy
👉   @PythonPortal
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤19👍4
  Вот трюк для оптимизации нейросетки, который даёт примерно 4x ускорение при передаче данных с CPU на GPU.
Представим задачу классификации изображений.
Определяем модель, загружаем и преобразуем данные.
В цикле обучения передаём данные на GPU и тренируем сеть.
В чём проблема:
Если заглянуть в профайлер,
- большая часть ресурсов уходит на ядро (то есть на само обучение),
- но заметное время тратится и на передачу данных с CPU на GPU (cudaMemcpyAsync).
Сократить это просто.
Изначально датасет состоит из пикселей в виде 8-битных целых чисел. Мы преобразуем их в 32-битные float’ы.
А потом именно эти float-тензоры гоняем на GPU. В итоге данных стало в 4 раза больше, а значит, и передача тяжелее.
Решение:
Сдвинуть шаг преобразования после передачи. То есть сначала передаём 8-битные int’ы, а уже на GPU конвертируем их в float.
В результате шаг передачи данных заметно ускорится.
Конечно, это работает не везде, например, в NLP мы изначально имеем дело с float-эмбеддингами.
Но в случаях, где это применимо, ускорение получается очень ощутимым.
👉   @PythonPortal
Представим задачу классификации изображений.
Определяем модель, загружаем и преобразуем данные.
В цикле обучения передаём данные на GPU и тренируем сеть.
В чём проблема:
Если заглянуть в профайлер,
- большая часть ресурсов уходит на ядро (то есть на само обучение),
- но заметное время тратится и на передачу данных с CPU на GPU (cudaMemcpyAsync).
Сократить это просто.
Изначально датасет состоит из пикселей в виде 8-битных целых чисел. Мы преобразуем их в 32-битные float’ы.
А потом именно эти float-тензоры гоняем на GPU. В итоге данных стало в 4 раза больше, а значит, и передача тяжелее.
Решение:
Сдвинуть шаг преобразования после передачи. То есть сначала передаём 8-битные int’ы, а уже на GPU конвертируем их в float.
В результате шаг передачи данных заметно ускорится.
Конечно, это работает не везде, например, в NLP мы изначально имеем дело с float-эмбеддингами.
Но в случаях, где это применимо, ускорение получается очень ощутимым.
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤31
  Please open Telegram to view this post
    VIEW IN TELEGRAM
  😁76🤣51❤6🔥3👀2
  This media is not supported in your browser
    VIEW IN TELEGRAM
  Бесплатная халява в Steam
Забираем Upload Labs — симулятор программиста, где тебе предстоит спасти Вселенную от тепловой смерти, создав идеальную компьютерную систему.🤣 
Готовься к настоящему испытанию мозга, ведь придётся писать код, оптимизировать ресурсы и заставлять всё работать как часы.
Забираем: стим
👉   @PythonPortal
Забираем Upload Labs — симулятор программиста, где тебе предстоит спасти Вселенную от тепловой смерти, создав идеальную компьютерную систему.
Готовься к настоящему испытанию мозга, ведь придётся писать код, оптимизировать ресурсы и заставлять всё работать как часы.
Забираем: стим
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤36🔥2🤯1💊1
  Совет по чистому коду в Python:
Избегай наивных datetime-объектов — всегда используй те, что учитывают часовой пояс.
Работай с ними в UTC, а пользователю показывай только в его локальной таймзоне.
👉   @PythonPortal
Избегай наивных datetime-объектов — всегда используй те, что учитывают часовой пояс.
Работай с ними в UTC, а пользователю показывай только в его локальной таймзоне.
import datetime
from zoneinfo import ZoneInfo
# BAD
now = datetime.datetime.now()
print(now.isoformat())
# 2025-10-21T15:03:07.332217
# GOOD
now = datetime.datetime.now(tz=ZoneInfo("UTC"))
print(now.isoformat())
# 2025-10-21T12:04:22.573590+00:00
print(now.astimezone().isoformat())
# 2025-10-21T15:04:22.573590+03:00
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍40❤5💊1
  Media is too big
    VIEW IN TELEGRAM
  OpenAI выпустила Atlas новый браузер с искусственным интеллектом, который умеет запоминать контекст и работает в Agent Mode.
Что известно:
Atlas полностью интегрирован с ChatGPT и использует ChatGPT Search под капотом.
В Agent Mode браузер может сам ходить по сайтам, кликать, искать и выполнять действия.
Можно открывать неограниченное число вкладок с агентами — каждый живёт своей жизнью и решает отдельные задачи.
Atlas уже доступен для пользователей Free, Plus, Pro, Go и Business по всему миру.
Пользователи Enterprise и Education могут получить доступ к бете, если админ включит её. Также в разработке версии для Windows, iOS и Android.
Скачать можно на chatgpt.com/atlas
Надеемся, что пользователи Windows скоро тоже смогут оценить этот новый браузер в деле.😎 
👉   @PythonPortal
Что известно:
Atlas полностью интегрирован с ChatGPT и использует ChatGPT Search под капотом.
В Agent Mode браузер может сам ходить по сайтам, кликать, искать и выполнять действия.
Можно открывать неограниченное число вкладок с агентами — каждый живёт своей жизнью и решает отдельные задачи.
Atlas уже доступен для пользователей Free, Plus, Pro, Go и Business по всему миру.
Пользователи Enterprise и Education могут получить доступ к бете, если админ включит её. Также в разработке версии для Windows, iOS и Android.
Скачать можно на chatgpt.com/atlas
Надеемся, что пользователи Windows скоро тоже смогут оценить этот новый браузер в деле.
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤6👍5💊3
  Please open Telegram to view this post
    VIEW IN TELEGRAM
  😁94🔥12💊6🤔4🤣4❤3🌚3👀2👍1🤝1
  This media is not supported in your browser
    VIEW IN TELEGRAM
  Изучай алгоритмы computer science наглядно 
Этот онлайн-инструмент помогает разобраться с широким спектром алгоритмов через интерактивные визуализации.
Пошагово проходи выполнение каждого алгоритма, наблюдай, как изменяются структуры данных, и понимай логику каждой операции.😑 
👉   @PythonPortal
Этот онлайн-инструмент помогает разобраться с широким спектром алгоритмов через интерактивные визуализации.
Пошагово проходи выполнение каждого алгоритма, наблюдай, как изменяются структуры данных, и понимай логику каждой операции.
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍19🤝4❤2🤯2
  This media is not supported in your browser
    VIEW IN TELEGRAM
  Эксперимент: диффузионная текстовая модель на 11 млн параметров
Разработчик тестирует миниатюрную символьную диффузионную модель (всего 11M параметров), основанную на переработанной версии nanochat GPT. Вместо классического авторегрессионного декодирования используется диффузионный подход, а обучается модель на датасете Tiny Shakespeare.
В процессе экспериментов исследуются разные стратегии маскирования токенов. Простая схема с равномерной вероятностью уступает новым методам, где маскирование идёт блоками слева направо = это повышает качество вывода и даёт возможность частично переиспользовать KVCache.
Самое интересное, автор попробовал применять маскирование по правилам «Игры жизни» Конвея, и это дало неожиданные, но визуально захватывающие результаты.
Он предполагает, что подобные нестандартные схемы маскирования могут привести к новым эффектам и улучшениям в генерации текста.
Эксперимент ещё в работе, но уже выглядит как увлекательное направление для развития текстовых диффузионных моделей.
👉   @PythonPortal
Разработчик тестирует миниатюрную символьную диффузионную модель (всего 11M параметров), основанную на переработанной версии nanochat GPT. Вместо классического авторегрессионного декодирования используется диффузионный подход, а обучается модель на датасете Tiny Shakespeare.
В процессе экспериментов исследуются разные стратегии маскирования токенов. Простая схема с равномерной вероятностью уступает новым методам, где маскирование идёт блоками слева направо = это повышает качество вывода и даёт возможность частично переиспользовать KVCache.
Самое интересное, автор попробовал применять маскирование по правилам «Игры жизни» Конвея, и это дало неожиданные, но визуально захватывающие результаты.
Он предполагает, что подобные нестандартные схемы маскирования могут привести к новым эффектам и улучшениям в генерации текста.
Эксперимент ещё в работе, но уже выглядит как увлекательное направление для развития текстовых диффузионных моделей.
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤21👍8🔥6😁1
  Самостоятельные курсы по программированию для школьников от Яндекс Лицея 
Убрали дедлайны, отборы и преподавателей, чтобы вы смогли в комфортном темпе проходить материал. Сейчас доступны курсы по Go, С++ и фронтенд-разработке.
Эти курсы помогут понять, нравится вам кодить или нет, подготовиться к экзаменам, контрольным по информатике. Можно сказать, что это замена репетитора для более детального изучения тем.
👉 Регистрируемся и начинаем обучение здесь
Убрали дедлайны, отборы и преподавателей, чтобы вы смогли в комфортном темпе проходить материал. Сейчас доступны курсы по Go, С++ и фронтенд-разработке.
Эти курсы помогут понять, нравится вам кодить или нет, подготовиться к экзаменам, контрольным по информатике. Можно сказать, что это замена репетитора для более детального изучения тем.
👉 Регистрируемся и начинаем обучение здесь
❤8
  This media is not supported in your browser
    VIEW IN TELEGRAM
  Визуализируй большие векторные данные в Python — БЫСТРО!
Надоели медленные и громоздкие инструменты для визуализации больших векторных датасетов в Python?
Открой для себя этот однострочный трюк с Leafmap + DuckDB, который позволяет мгновенно отрисовывать огромные векторные наборы данных, даже размером в гигабайты - прямо в Jupyter Notebook.
В этом видео ты узнаешь, как:
Без труда визуализировать миллионы векторных объектов
Использовать Leafmap + DuckDB для динамической выдачи векторных тайлов
Работать с GeoParquet, GeoPackage, данными из облака и не только
Создавать полностью интерактивные карты — без вылетов браузера
Пример ноутбука: https://leafmap.org/maplibre/duckdb_layer
👉   @PythonPortal
Надоели медленные и громоздкие инструменты для визуализации больших векторных датасетов в Python?
Открой для себя этот однострочный трюк с Leafmap + DuckDB, который позволяет мгновенно отрисовывать огромные векторные наборы данных, даже размером в гигабайты - прямо в Jupyter Notebook.
В этом видео ты узнаешь, как:
Без труда визуализировать миллионы векторных объектов
Использовать Leafmap + DuckDB для динамической выдачи векторных тайлов
Работать с GeoParquet, GeoPackage, данными из облака и не только
Создавать полностью интерактивные карты — без вылетов браузера
Пример ноутбука: https://leafmap.org/maplibre/duckdb_layer
Please open Telegram to view this post
    VIEW IN TELEGRAM
  🔥15👍5❤4
  This media is not supported in your browser
    VIEW IN TELEGRAM
  Годы юзал Chrome и только сегодня узнал об этом 😅 
Вводишь в адресную строку:
Полезные штуки, которые там можно найти:
-
-
-
Ставьте лайк, если тоже не знали, посмотрим сколько нас
👉   @PythonPortal
Вводишь в адресную строку:
chrome://chrome-urls — открывается список всех внутренних страниц браузера - от отладочных тулзов до экспериментальных фич.Полезные штуки, которые там можно найти:
-
chrome://flags → скрытые настройки-
chrome://gpu → информация о работе GPU-
chrome://net-export → отладка сетиСтавьте лайк, если тоже не знали, посмотрим сколько нас
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍90❤16💊8🤣6🌭2
  Компания JetBrains на днях выпустила отчёт о состоянии экосистемы разработчиков в 2025 году. В нем приняли участие 24 534 разработчика из 194 стран
Некоторые выводы:
Наиболее используемый язык - Python
TypeScript демонстрирует самый впечатляющий рост в реальном использовании за последние пять лет. Rust, Go и Kotlin тоже постепенно укрепляют свои позиции, хотя их успехи не столь заметны, как у TypeScript.
А PHP, Ruby и Objective-C продолжают уверенно терять популярность.
Индекс Language Promise от JetBrains оценивает языки по трём критериям: рост, стабильность и готовность разработчиков их осваивать. Согласно этому индексу, в 2025 году наибольший потенциал роста демонстрируют TypeScript, Rust и Go, тогда как JavaScript, PHP и SQL, судя по всему, достигли стадии зрелости.
Список самых высокооплачиваемых разработчиков возглавлавила Scala — 38%, хотя этот язык является основным всего у 2% специалистов. Похоже, сказывается узкая специализация
👉   @PythonPortal
Некоторые выводы:
Наиболее используемый язык - Python
TypeScript демонстрирует самый впечатляющий рост в реальном использовании за последние пять лет. Rust, Go и Kotlin тоже постепенно укрепляют свои позиции, хотя их успехи не столь заметны, как у TypeScript.
А PHP, Ruby и Objective-C продолжают уверенно терять популярность.
Индекс Language Promise от JetBrains оценивает языки по трём критериям: рост, стабильность и готовность разработчиков их осваивать. Согласно этому индексу, в 2025 году наибольший потенциал роста демонстрируют TypeScript, Rust и Go, тогда как JavaScript, PHP и SQL, судя по всему, достигли стадии зрелости.
Список самых высокооплачиваемых разработчиков возглавлавила Scala — 38%, хотя этот язык является основным всего у 2% специалистов. Похоже, сказывается узкая специализация
Please open Telegram to view this post
    VIEW IN TELEGRAM
  Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤20👍9