Passer au contenu principal
Cursor fournit des outils intégrés pour le développement en data science, avec des environnements reproductibles, la prise en charge des notebooks et une assistance au code propulsée par l’IA. Ce guide présente les configurations essentielles pour les workflows Python, R et SQL.

Développement de notebooks

Pour une prise en charge complète des notebooks, télécharge l’extension Jupyter (id : ms-toolsai.jupyter), publiée par ms-toolsai.
Cursor prend en charge les fichiers .ipynb et .py avec exécution de cellules intégrée. Tab, Inline Edit et Agents fonctionnent dans les notebooks, comme dans les autres fichiers de code. Fonctionnalités clés :
  • L’exécution de cellules en ligne lance le code directement dans l’interface de l’éditeur
  • Tab, Inline Edit et Agent comprennent les bibliothèques de data science, notamment pandas, NumPy, scikit-learn, ainsi que les commandes magiques SQL

Intégration des bases de données

Les bases de données peuvent être intégrées à Cursor via deux mécanismes principaux : les serveurs MCP et les extensions.
  • Les serveurs MCP permettent à tes agents de se connecter à tes bases de données
  • Les extensions intègrent ton IDE au sens large avec tes bases de données

Via MCP

Les serveurs MCP permettent à ton agent d’exécuter des requêtes directement sur ta base de données. Ça permet à ton agent de choisir d’interroger la base, d’écrire la requête appropriée, d’exécuter la commande et d’analyser les résultats, le tout dans le cadre d’une tâche en cours. Par exemple, tu peux connecter une base de données Postgres à ton instance Cursor en ajoutant la config MCP suivante à Cursor :
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://localhost/ma_bdd"
      ]
    }
  }
}
Pour en savoir plus sur MCP, consulte notre documentation MCP.

Via des extensions

Installe des extensions spécifiques aux bases de données (PostgreSQL, BigQuery, SQLite, Snowflake) pour exécuter des requêtes directement depuis l’éditeur. Ça évite de jongler entre les outils et permet à l’IA d’aider à optimiser tes requêtes.
-- Cursor suggère des index, des fonctions de fenêtre et des optimisations de requêtes
SELECT
    user_id,
    event_type,
    COUNT(*) AS nombre_d’événements,
    RANK() OVER (PARTITION BY user_id ORDER BY COUNT(*) DESC) AS rang_de_fréquence
FROM events
WHERE created_at >= NOW() - INTERVAL '7 days'
GROUP BY user_id, event_type;
Utilise les Agents pour analyser des requêtes lentes, proposer des optimisations de performance ou générer du code de visualisation pour les résultats. Cursor comprend le contexte SQL et peut recommander des types de graphiques adaptés à ta structure de données.
Extension Snowflake

Visualisation de données

L’assistant IA de Cursor fonctionne avec des bibliothèques de visualisation comme Matplotlib, Plotly et Seaborn. L’agent peut générer du code de visualisation pour t’aider à explorer rapidement tes données, tout en créant un artefact reproductible et partageable.
import plotly.express as px
import pandas as pd

# L’IA suggère des types de graphiques pertinents en fonction des colonnes de données
df = pd.read_csv('sales_data.csv')
fig = px.scatter(df, x='advertising_spend', y='revenue',
                 color='region', size='customer_count',
                 title='Revenus vs dépenses publicitaires par région')
fig.show()

Foire aux questions

Est-ce que je peux utiliser des notebooks Jupyter existants ? Oui, Cursor ouvre les fichiers .ipynb avec exécution complète des cellules et prise en charge de l’autocomplétion par IA. Comment gérer de gros jeux de données qui ne tiennent pas en mémoire ? Utilise des bibliothèques de calcul distribué comme Dask, ou connecte-toi à des clusters Spark via des connexions Remote-SSH vers des machines plus puissantes. Est-ce que Cursor prend en charge les fichiers R et SQL ? Oui, Cursor fournit une assistance IA et la coloration syntaxique pour les scripts R (.R) et les fichiers SQL (.sql). Quelle est la façon recommandée de partager des environnements de développement ? Valide le dossier .devcontainer dans le système de gestion de versions. Les membres de l’équipe peuvent reconstruire l’environnement automatiquement à l’ouverture du projet. Comment déboguer des pipelines de traitement de données ? Utilise le débogueur intégré de Cursor avec des points d’arrêt dans les scripts Python, ou utilise Agent pour analyser et expliquer étape par étape des transformations de données complexes.

Reproductibilité de l’environnement

Conteneurs de développement

Les conteneurs de développement t’aident à garantir des runtimes et des dépendances cohérents entre les membres de l’équipe et les environnements de déploiement. Ils peuvent éliminer les bugs liés à l’environnement et réduire le temps d’intégration des nouveaux membres de l’équipe. Pour utiliser un conteneur de développement, commence par créer un dossier .devcontainer à la racine de ton dépôt. Ensuite, crée les fichiers devcontainer.json, Dockerfile et requirements.txt.
// .devcontainer/devcontainer.json
{
  "name": "ds-env",
  "build": { "dockerfile": "Dockerfile" },
  "features": {
    "ghcr.io/devcontainers/features/python:1": { "version": "3.11" }
  },
  "postCreateCommand": "pip install -r requirements.txt"
}
# .devcontainer/Dockerfile
FROM mcr.microsoft.com/devcontainers/python:3.11
COPY requirements.txt .
RUN pip install --upgrade pip && \
    pip install -r requirements.txt
# requirements.txt
pandas==2.3.0
numpy
# ajoute d’autres dépendances dont tu as besoin pour ton projet
Cursor détectera automatiquement le devcontainer et te proposera de rouvrir ton projet dans un conteneur. Tu peux aussi rouvrir manuellement dans un conteneur via la Command Palette (Ctrl+Shift+P) en recherchant Reopen in Container. Les conteneurs de développement offrent plusieurs avantages :
  • Isolation des dépendances pour éviter les conflits entre projets
  • Builds reproductibles garantissant un comportement cohérent entre les environnements de développement et de production
  • Onboarding simplifié permettant aux nouveaux membres de l’équipe de démarrer immédiatement sans configuration manuelle

Développement à distance avec SSH

Quand ton travail nécessite des ressources de calcul supplémentaires, des GPU, ou l’accès à des jeux de données privés, connecte-toi à des machines distantes tout en conservant ton environnement de développement local.
  1. Mets à disposition une instance cloud ou accède à un serveur on-premises avec les ressources requises
  2. Clone ton dépôt sur la machine distante, y compris la configuration .devcontainer
  3. Connecte-toi via Cursor : Ctrl+Shift+P → “Remote-SSH: Connect to Host”
Cette approche conserve un outillage cohérent tout en faisant évoluer les ressources de calcul selon les besoins. La même configuration de conteneur de développement fonctionne aussi bien en local qu’à distance.
I