Привет! Если ты Python-разраб и только переехал в Cursor с VS Code или PyCharm — первые пару дней он ведёт себя странно. Type hints не подсвечивает, линтер не тот, Composer переписывает код в чужом стиле. Сейчас разрулим ☆
Cursor — это форк VS Code, но «из коробки» он настроен под TypeScript-сообщество. Под Python нужно докрутить три вещи: правильные расширения, .cursorrules под твой фреймворк и понимание, когда звать Composer, а когда лучше Chat. Без этого AI будет работать в полсилы и периодически бесить.
В этой статье — рабочая конфигурация Cursor под Python 2026 года. Для FastAPI и Django, с Pylance, Ruff и шаблонами .cursorrules, которые можно скопировать к себе в проект прямо сейчас.
💡 Если ты новичок в теме — сначала глянь главный гайд Как оплатить ChatGPT Plus из России в 2026 — рабочие способы, там разобраны все базовые способы и подводные камни.
TL;DR ⚡
- Поставь два расширения: Pylance (типы + автокомплит) и Ruff (линтер + форматтер за 1 шаг).
- Брось
.cursorrulesв корень проекта — там объясни AI, какой у тебя стек (FastAPI vs Django), стиль типов, версию Python. - Chat для вопросов, Composer для правок через несколько файлов. Не путай — Composer слабее на одиночных мелких задачах.
- Pro-тариф окупается за пару дней реальной работы. Если карта не проходит — оплати Cursor через Blups, мы не маркетплейс, делаем выдачу сами.
Расширения, без которых Cursor под Python не работает
Cursor по умолчанию ставит свои AI-фичи, но обычные «питоновские» расширения нужно докинуть руками.
Pylance — типы и автодополнение
Это форк Microsoft Python language server, который тянет за собой Pyright под капотом. Что делает:
- Подсвечивает несовпадение типов в реальном времени (
def foo(x: int)→ передалstr→ красное подчёркивание). - Показывает inline hints с типами переменных.
- Go-to-definition по импортам стандартной библиотеки.
- Понимает
TypedDict,Protocol,Generic— то, что Ruff не ловит.
Ставится через extensions, ищешь ms-python.vscode-pylance. После установки в settings добавь:
{
"python.analysis.typeCheckingMode": "basic",
"python.analysis.autoImportCompletions": true,
"python.analysis.inlayHints.functionReturnTypes": true,
"python.analysis.inlayHints.variableTypes": false
}
typeCheckingMode: basic — золотая середина. strict будет ругаться на всё подряд, особенно на старых проектах. off — тогда зачем вообще ставил.
Ruff — линтер и форматтер в одном
Раньше под Python ставили pylint + flake8 + black + isort. К 2026 всё это заменил Ruff — написан на Rust, в 50-100 раз быстрее, делает то же самое одним инструментом.
Расширение: charliermarsh.ruff. После установки добавь:
{
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.ruff": "explicit",
"source.organizeImports.ruff": "explicit"
}
}
}
Теперь при сохранении файла Ruff сам отформатирует, отсортирует импорты и пофиксит мелочи (неиспользованные переменные, лишние пробелы).
В корень проекта положи pyproject.toml с минимальным конфигом:
[tool.ruff]
line-length = 100
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "I", "B", "UP", "N"]
ignore = ["E501"]
Это включит проверки на ошибки (E, F), импорты (I), баги-паттерны (B), модернизацию синтаксиса (UP) и имена (N). E501 (длина строки) выключаем — форматтер сам разрулит.
Что не ставить
- Python (ms-python.python) — Cursor уже ставит автоматически, не дублируй.
- Pylint, Black, isort, autopep8 — всё это умеет Ruff, не нужно.
- Mypy — если ты не делаешь strict typing, Pylance справится. Mypy ставь только если нужен
--strictв CI.
.cursorrules — главная фишка для Python-проекта
.cursorrules — это файл в корне проекта, где ты на человеческом языке объясняешь AI правила игры. Cursor подгружает его в контекст каждого запроса к Chat и Composer.
Без .cursorrules AI будет писать в среднем «как принято в интернете» — а это часто не то, что нужно тебе. Например, накидает requests вместо httpx, поставит print вместо логгера, забудет про async/await.
.cursorrules для FastAPI-проекта
You are a senior Python developer working on a FastAPI backend.
Tech stack:
- Python 3.12
- FastAPI 0.115+
- SQLAlchemy 2.0 with async engine
- Pydantic v2 for schemas
- pytest + httpx.AsyncClient for tests
- Ruff for linting and formatting
Code style:
- Use type hints everywhere (function args, returns, class attrs).
- Prefer async/await over sync I/O.
- Use dependency injection through Depends() — no global state.
- Pydantic models: separate schemas for Create / Update / Read (e.g. UserCreate, UserRead).
- Database models in models/, schemas in schemas/, routes in routes/.
- Use SQLAlchemy 2.0 syntax (select(), not query()).
- Error handling: raise HTTPException with explicit status_code and detail.
Avoid:
- requests library — use httpx.
- print() for logging — use structlog.
- Global db sessions — always inject via Depends.
- Sync DB calls in async endpoints.
When generating tests:
- Use pytest fixtures from conftest.py.
- Mock external HTTP with respx.
- Cover happy path + at least one error case.
.cursorrules для Django-проекта
You are a senior Python developer working on a Django backend.
Tech stack:
- Python 3.12
- Django 5.1 LTS
- Django REST Framework for API endpoints
- PostgreSQL via psycopg3
- Celery for background tasks
- pytest-django for tests
Code style:
- Use type hints in business logic (services/, selectors/), optional in views.
- Fat models, thin views — business logic in models/managers or services/.
- Follow Django apps structure: one app = one bounded context.
- Use class-based views for DRF (ViewSet/APIView), function-based only for legacy.
- Use Django ORM idiomatically: select_related/prefetch_related for joins.
Avoid:
- Raw SQL unless absolutely necessary.
- Business logic in serializers — use services/.
- Signals for cross-app logic (hard to trace) — call explicitly.
- N+1 queries — always check with django-debug-toolbar.
Migrations:
- Always create migration files explicitly with makemigrations.
- Never edit migrations after they're applied in prod.
- For data migrations — use RunPython with reverse_code.
Положил такой файл в корень — и Composer начинает писать ровно так, как ты привык в этом проекте. Без него тратишь по 5 минут на каждый запрос, объясняя контекст.
Composer для рефакторинга — когда оно реально круто
Composer (он же Agent Mode) — это та фича, ради которой питонисты переезжают в Cursor с PyCharm. Он умеет править несколько файлов одним промптом.
Кейс 1: переименовать модель и всё, что от неё зависит
Например: у тебя в Django модель Subscription, ты хочешь переименовать в Membership. Это касается:
models.py(сам класс)admin.py(регистрация)serializers.pyviews.py- 5-10 импортов по проекту
- миграцию
В PyCharm ты делаешь Rename Symbol, но он не трогает строки в шаблонах и миграциях. В Composer пишешь:
«Переименуй модель Subscription в Membership во всех файлах проекта. Создай миграцию RenameModel. Не трогай старые миграции, которые уже в проде.»
Composer открывает diff по всем файлам сразу, ты ревьюишь, applies. Минута вместо получаса.
Кейс 2: вытащить функцию из view в service
«Вытащи логику расчёта суммы заказа из OrderViewSet.create в services/orders.py. Покрой тестом в tests/services/test_orders.py. Используй существующий conftest.py.»
Composer создаёт новый файл, переносит код, фиксит импорты, пишет тест. Ревьюишь — обычно норм с первого раза, если .cursorrules нормально настроен.
Кейс 3: миграция с sync на async
«Перепиши routes/users.py с sync SQLAlchemy на async. Обнови зависимости в Depends. Адаптируй тесты в tests/test_users.py.»
Это месяц работы вручную, в Composer — час с ревью.
Когда Composer хуже Chat
Composer плохо работает на:
- Одиночных мелких правках (поменять имя переменной в одном месте) — Chat быстрее.
- Алгоритмических задачах («оптимизируй этот цикл») — лучше дать выделение и спросить через Chat.
- Задачах без чёткой цели («сделай красивее») — он будет рандомно ломать архитектуру.
Правило: Composer = «изменения в N файлах с понятной структурой». Chat = «вопрос / точечная правка».
Виртуальные окружения и интерпретатор
Самая частая ошибка новичков в Cursor под Python: AI пишет код, который использует пакеты, но Cursor ругается «module not found». Причина — Cursor не видит твоё venv.
Решение: Cmd+Shift+P → Python: Select Interpreter → выбираешь .venv/bin/python своего проекта.
Лучше всего работает uv (быстрый replacement для pip + venv). Создание окружения:
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt
Cursor автоматически подхватит .venv/ в корне проекта, если он там есть. Если используешь Poetry или Conda — путь к интерпретатору придётся указать руками.
Чек-лист настройки Cursor под Python (。•̀ᴗ-)✧
Если ты только что открыл новый Python-проект в Cursor, пройди по списку:
- Поставил Pylance (
ms-python.vscode-pylance). - Поставил Ruff (
charliermarsh.ruff). - Выбрал интерпретатор
.venv/bin/python. - Добавил
[python]блок в settings с formatOnSave. - Создал
pyproject.tomlс[tool.ruff]конфигом. - Бросил
.cursorrulesв корень с описанием стека. - Проверил, что
Cmd+Sформатирует файл и сортирует импорты. - Запустил Composer на любой мелкой задаче — посмотрел, как он понимает контекст.
После этого Cursor работает под Python так же приятно, как PyCharm под Django — только с AI, который реально пишет код, а не просто подсвечивает синтаксис.
Частые ошибки ⚠️
1. Поставили pylint + black + isort одновременно с Ruff
Они начинают конфликтовать: pylint ругается на то, что Ruff уже пофиксил, black форматирует не так, как Ruff. Удали всё кроме Ruff.
2. Не положили .cursorrules — жалуются, что AI пишет хрень
Без .cursorrules Cursor не знает, что у тебя async FastAPI, а не sync Flask. И пишет средневзвешенный код из интернета. 10 минут на файл правил — экономят часы.
3. Купили Cursor Pro «на потом», пока ещё на Free
Cursor начинает списывать сразу с момента активации, не «когда закончится Free». Покупай ровно тогда, когда упёрся в лимит на 500 fast-requests.
4. Композером гонят рефакторинг без .cursorrules
Получают на выходе код, который форматно отличается от остального проекта. Тратят полчаса на cleanup. Опять же — .cursorrules в первую очередь.
FAQ
Pylance vs Pyright — что ставить?
Pylance включает Pyright внутри + всё VS Code-specific (inlay hints, code lens, навигация). Для Cursor ставь Pylance, отдельный Pyright не нужен. Если работаешь без AI-IDE — можно отдельный Pyright через CLI в CI.
Ruff заменяет mypy?
Нет. Ruff — это линтер + форматтер, mypy — статический тайп-чекер. У них пересечение небольшое. Если делаешь strict typing — ставь и Ruff, и mypy. Если просто хочешь подсветку типов в IDE — Pylance в `basic` режиме хватит.
Cursor умеет Jupyter notebooks для Python?
Да, поддержка .ipynb из коробки (как в VS Code). Chat и Composer работают по ячейкам, но Composer на ноутбуках слабее, чем на обычных .py — он плохо понимает порядок выполнения ячеек. Лучше для notebook-задач использовать Chat с выделением ячейки.
Что выгоднее для Python — Cursor или GitHub Copilot?
Cursor сильнее в Composer/Agent-режиме: умеет править несколько файлов сразу. Copilot пока только tab completion и chat в рамках одного файла. Если ты делаешь рефакторинги — Cursor выигрывает. Если только пишешь новый код с автодополнением — разница меньше.
Можно ли использовать Cursor с Poetry?
Да. Запусти `poetry shell` или `poetry env info —path`, скопируй путь, в Cursor выбери Python: Select Interpreter → Enter interpreter path → вставь путь. Cursor запомнит для этого проекта.
AI в Cursor видит мой код? Что с приватностью?
По умолчанию Cursor отправляет твой код в свои модели и в Anthropic/OpenAI. В Pro есть Privacy Mode — код не используется для тренировки, не хранится. В Business — дополнительно изоляция данных. Если работаешь с чувствительным кодом — включи Privacy Mode в settings.
Российская карта не проходит — что делать?
Cursor (как и большинство американских SaaS) не принимает оплату с российских карт через Stripe. Вариантов несколько: казахская/армянская карта (если есть), корпоративный план через работодателя, или [оплата через Blups](https://blups.me/product/cursor) — мы оформляем Pro/Ultra на твой аккаунт за несколько минут.
Что в итоге
- Pylance + Ruff — минимальный комплект расширений под Python в Cursor 2026.
.cursorrulesв корне проекта — то, что превращает Cursor из «AI наугад» в «AI, который знает твой стек».- Composer для рефакторинга по N файлам, Chat — для точечных правок. Не путать.
Мы стараемся быть лучшим сервисом сразу с двух сторон: держим адекватную цену и отвечаем за каждый заказ лично. Если Pro понадобится — Blups на связи ♡
Статья обновляется. Последняя правка: 28 мая 2026.
Читайте также
- Как оплатить Cursor IDE из России в 2026 — подписка Pro, Ultra — Разобрали, как оплатить подписку Cursor IDE (Pro $20, Ultra $200) из России в 2026 — через Blups, зарубежную карту, корпоративный
- Как оплатить ChatGPT Plus из России в 2026 — рабочие способы — Разобрали все способы оплатить подписку ChatGPT Plus из России в 2026: через Blups, зарубежные карты, виртуалки, друга за границей
- Как оплатить Claude Pro из России в 2026 — все рабочие способы — Разобрали все рабочие способы оплатить Claude Pro ($20/мес) из России в 2026: через Blups, зарубежная карта, через друга. С ценами
- Как оплатить Midjourney из России в 2026 — Basic, Standard, Pro, Mega — Как оплатить подписку Midjourney из России в 2026: разбираем все тарифы (Basic $10, Standard $30, Pro $60, Mega $120) и рабочие сп
- Cursor vs GitHub Copilot в 2026 — что выбрать разрабу — Сравнили Cursor ($20 Pro / $200 Ultra) и GitHub Copilot ($10/мес) в 2026 — модели, Composer, цены, плюсы и минусы. Что выбрать раз
- Cursor vs VS Code + Continue 2026 — когда $20 окупаются, а когда хватит open-source — Сравнили Cursor Pro ($20) и связку VS Code + Continue (open-source) в 2026. Когда оправдан Cursor, когда хватит Continue со своим