ChatCrawlerпоиск по публичному Telegram Открыть приложение
P

Python Community | Chat

сообщение · 2026-01-23 11:08 UTC
I
Ссылка
нажмите — покажем
🐍 Самая крутая фича Python 3.14 - `sys.remote_exec()` (объясняю по-человечески) Идея простая: ✅ у тебя уже запущено Python-приложение (например FastAPI в Docker/K8s) ✅ оно уже дошло до нужного состояния (в памяти есть переменные, сессии, кеши) ❌ но тебе нужно посмотреть “что внутри” или поставить дебаггер Раньше ты делал так: - добавлял debugpy в код - перезапускал приложение - заново воспроизводил баг Python 3.14 даёт новый чит-код: sys.remote_exec() позволяет выполнить кусок Python-кода ВНУТРИ уже работающего Python-процесса. То есть буквально “вколоть” скрипт в живой процесс. Это как: 🔹 зайти внутрь процесса 🔹 выполнить print(), импорт, запись переменных 🔹 или даже подключить дебаггер без рестарта вообще. Пример: что можно сделать через sys.remote_exec() Допустим у нас есть работающий процесс Python. 1) Мы хотим “добавить” туда код: - вывести PID - посмотреть глобальные переменные - записать лог - даже поменять значение переменной # Этот код выполняется СНАРУЖИ и запускает инжект внутрь процесса import sys target_pid = 12345 # PID запущенного Python процесса payload = r""" import os import time print("✅ Injected into running process!") print("PID:", os.getpid()) print("Time:", time.time()) # Пример: читаем что есть в глобальном пространстве g = globals() print("Globals keys sample:", list(g.keys())[:10]) # Пример: создаём переменную прямо в процессе INJECTED_FLAG = True """ # Новое API Python 3.14 sys.remote_exec(target_pid, payload) Пример 2: инжектим debugpy (дебаг без рестарта) Самая хайповая штука - можно подключить debugpy в уже живое приложение. То есть приложение уже крутится, у него есть состояние, и ты просто включаешь “прослушку” дебаггера на порту. import sys target_pid = 12345 # PID работающего uvicorn / fastapi процесса payload = r""" import debugpy HOST = "0.0.0.0" PORT = 5679 debugpy.listen((HOST, PORT)) print(f"🐞 debugpy is listening on {HOST}:{PORT}") # если хочешь остановить выполнение и ждать пока подключишь IDE: # debugpy.wait_for_client() # print("✅ debugger attached!") """ sys.remote_exec(target_pid, payload) Дальше: - ты делаешь port-forward (если Docker/K8s) - подключаешь VS Code / PyCharm / nvim к localhost:5679 - ставишь breakpoints и дебажишь как обычно Что важно 1) Это не “удалённое выполнение” как ssh. Это прям “внутри процесса” - доступ к памяти, переменным, импортам. 2) Это опасно для продакшена. Требует прав уровня SYS_PTRACE (можно читать/менять процессы) - поэтому только для локалки/стендов. 3) Это может стать стандартом для отладки контейнеров: - баг воспроизводится только в k8s - рестарт = баг пропал - а тут просто подключился и посмотрел 📌 Статья на эту тему (https://savannah.dev/posts/the-coolest-feature-in-314/) @Python_Community_ru

Все сообщения за 23 января 2026 · Вся лента · оригинал в Telegram

Открыть в Telegram Каталог площадок Искать в ChatCrawler

Слепок открытой публичной ленты из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог