TGViewer
About Python [ru] About Python [ru] @python_tesst · 6.44K subscribers
Post #2780 355
⁣PEP 723: Inline Script Metadata — упаковка однофайловых скриптов без Poetry/uv

У вас есть скрипт на сервере: дёргает API, пишет в базу. Без venv, без poetry — все ставят pip install requests и молятся, что версия та. PEP 723 решает эту проблему, вписывая зависимости прямо в скрипт через блок-комментарий с метаданными.

Как это работает
Структура проста: блок # /// script до # /// содержит TOML-синтаксис, знакомый по pyproject.toml. Утилита pip-run парсит его, создаёт изолированное окружение и запускает скрипт. Начиная с Python 3.11 поддержка встроена, но pip-run удобнее в продакшене.

# /// script
# requires-python = ">=3.11"
# dependencies = [
# "requests>=2.31.0",
# "click>=8.1.0"
# ]
# ///

import requests, click

@click.command()
@click.option('--url', required=True)
def main(url):
response = requests.get(url)
print(f"Status: {response.status_code}")

if __name__ == "__main__":
main()


Production-пример: ETL-скрипт на агенте мониторинга
Используйте это для ETL-задач или метрик: скопировали файл на свежую машину, запустили pip-run script.py — и всё работает. Никаких конфликтов версий с другими проектами, никакого ручного создания venv. Это идеально для CI/CD и агентов, где каждый скрипт живёт сам по себе.

Типичная ошибка
Не пытайтесь использовать это для большой codebase — это не замена классическому менеджеру пакетов. pip-run не поддерживает lock-файлы и разрешение зависимостей на уровне проекта. Для одного скрипта это нормально, но для целого сервиса с десятками файлов — оставьте poetry или uv.

Практический совет
Проверяйте совместимость Python-версии: если окружение агента — Python 3.9, укажите requires-python = ">=3.9". Иначе pip-run молча выберет последнюю версию, что сломает совместимость с системными библиотеками.

Вывод:
PEP 723 избавляет от магии в зависимостях однофайлового продакшена, но не заменяет полноценный менеджер пакетов для сложных проектов.
More from @python_tesst
  1. Sep 29, 2026Claude Sonnet 5.5 — уже не слив, релиз официально состоялся Прайс не трогали: $2 за миллио…
  2. Sep 29, 2026Post #3194
  3. Sep 29, 2026Дженсен Хуанг выкатил NVIDIA Open Agent Safety Platform — и притащил с собой 100+ партнеро…
  4. Sep 29, 2026Стикмену теперь под силу снести любой сайт. Чувак под это навайбкодил целую игруху: грузиш…
  5. Sep 27, 2026OpenAI метит в подписку за 500 баксов Что там в описании тарифа? Пока что от ChatGPT Pro о…
  6. Sep 27, 2026Свежая обложка The Economist подъехала Журналисты: да мы вообще не сгущаем краски Те же жу…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →