Глава 1. Питон для JS-девелопера без боли

Памятка для тех, кто пишет на JS, а про Python знает только, что там есть pip и какие-то загадочные venv.
Для тех, кому лень ебаться с этим всем, но надо быстро накатать маленький CLI-тул.

Секретное оружие — uv.
Это типа npm для питона, только без адских зависимостей, вечно глючного pip и ручных виртуалок.
Дальше — по шагам, как за 5 минут сделать глобальную команду hello, которая печатает Hello, <name>!.


1. Ставим uv

Linux/macOS:

curl -Ls https://astral.sh/uv/install.sh | sh

Windows (PowerShell):

iwr https://astral.sh/uv/install.ps1 -UseBasicParsing | iex

2. Создаём проект

mkdir hello-tool && cd hello-tool

3. Пишем код hello.py

# hello.py
import sys

def main():
    name = sys.argv[1] if len(sys.argv) > 1 else "world"
    print(f"Hello, {name}!")

4. Описываем тул в pyproject.toml

(это типа package.json, только питонячий)

[project]
name = "hello-tool"
version = "0.1.0"
requires-python = ">=3.10"
dependencies = []

[project.scripts]
hello = "hello:main"

[tool.uv]
package = true

[tool.setuptools]
py-modules = ["hello"]

5. Синхронизируем (типа npm install)

uv sync

6. Гоняем локально

uv run hello
uv run hello Mark

7. Делаем глобально (аналог npm i -g)

uv tool install .
hello
hello Mark

Удалить:

uv tool uninstall hello-tool

И всё — у тебя глобальный CLI на питоне, без pip, без venv, без боли.