AI-подписки

Cursor для Python — гайд 2026

Как настроить Cursor под Python в 2026: Pylance, Ruff, .cursorrules для FastAPI/Django, Composer для рефакторинга. Гайд от Blups.

Привет! Если ты 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.py
  • views.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+PPython: 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, пройди по списку:

  1. Поставил Pylance (ms-python.vscode-pylance).
  2. Поставил Ruff (charliermarsh.ruff).
  3. Выбрал интерпретатор .venv/bin/python.
  4. Добавил [python] блок в settings с formatOnSave.
  5. Создал pyproject.toml с [tool.ruff] конфигом.
  6. Бросил .cursorrules в корень с описанием стека.
  7. Проверил, что Cmd+S форматирует файл и сортирует импорты.
  8. Запустил 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.

Читайте также

Нужно пополнить без головной боли?

Blups — сервис для доната в игры и подписок: Steam, Apple ID, Roblox, Telegram Stars, ChatGPT, Spotify и игровые валюты. Автоматизированные товары выдаём моментально, ручные — за 10–15 минут в рабочее время. Гарантия выполнения: возврат не понадобится — всё делаем как надо, а если что — напиши в поддержку, разрулим.

Открыть Blups →

Читайте также

Оставить комментарий

Комментарий появится после проверки модератором.