Глава 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, без боли.