Появился PEP 723, который предлагает "встраивать" pyproject.toml
в однофайловые скрипты.
Предлагается добавить переменную __pyproject__
, которая будет содержать в себе валидный TOML, описывающий метадату скрипта, в том числе как скрипт запускать и какие зависимости необходимы для запуска.
К примеру, вот так будет выглядеть скрипт, которому для работы нужна библиотека requests
и питон 3.11 или выше:
__pyproject__ = """PEP прикольный, что-то такое есть в качестве экспериментального RFC в Rust. Из минусов хотел бы отметить то, что автоматическая установка зависимостей может привести к запуску нежелательного кода. Но решение банальное - перед тем как что-то запускать, проверяйте, что вы запускаете.
[project]
requires-python = ">=3.11"
dependencies = [
"requests<3",
]
"""
import requests
resp = requests.get("https://peps.python.org/api/peps.json")
print(resp.json())
#pep
>>Click here to continue<<
