ready-4 IT

Pylance oder Ruff? Wierkscher verstoen, richteg kombinéieren

Pylance vs. Ruff — déi drénkend Froen beäntwert

Dës Froen sinn opgekomm beim Schaffe mat VS Code Console-Loggen — dofir gehéieren se an de Blog, net nëmme an e Chat:

  • Gehéiert python.languageServer an d''User Settings oder an d''Workspace Settings?
  • Wat ass méi modern: Pylance oder Ruff? Brauch ech Pylance nach, wann Ruff do ass?
  • Wéi installéiert een Ruff — workspace-wäit oder user-wäit?

Kuerz Äntwert: Pylance a Ruff sinn keng Konkurrenten. Si léisen komplett verschidde Problemer a ergänzen sech ideal. Wien béid richteg kombinéiert, huet dat stäerkst Python-Setup a VS Code.

📅 Publizéiert: 21. Mäerz 2026  ·  © 2026 Nejat Philip Eryigit · ready-4-IT.com

Pylance a Ruff — komplementär Wierkscher am Iwwerbléck

Black-kompatibel heescht: Ruff formatéiert Python-Code no deene selwechte Regele wéi dat bekannte Tool Black — konsequent Hochkommoen, fest Zeilenlängt (88 Zeechen), keng Stil-Diskussiounen. Et ass en direkten Ersatz: Wien bis elo Black benotzt huet, kann ouni Codeännerunge op Ruff wiesselen.


TL;DR

Pylance ≠ Ruff. Béid zesummen = dat stäerkst Setup.

User Settings (%APPDATA%\Code\User\settings.json):

{
  "ruff.nativeServer": "on",
  "python.languageServer": "Pylance",
  "[python]": {
    "editor.defaultFormatter": "charliermarsh.ruff",
    "editor.formatOnSave": true
  }
}

Viraussetzung: D'VS-Code-Extension charliermarsh.ruff muss installéiert sinn. Eréischt dann gräift editor.defaultFormatter = charliermarsh.ruff wierklech.

Empfehlung: Dëse Block gehéiert an d'VS-Code-User-Settings, also an %APPDATA%\Code\User\settings.json.

Workspace Settings (.vscode/settings.json am Projet):

{
  "python.analysis.typeCheckingMode": "basic",
  "python.analysis.diagnosticMode": "openFilesOnly",
  "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python"
}

Wat mécht wat? Zwee Wierkscher — eng kloer Opdelung

Déi heefegst Mëssverständnis: Ruff ersat Pylance net. Déi zwee Tools léisen fundamental verschidde Problemer.

Funktioun Pylance Ruff
IntelliSense / Autocomplete
Typ-Kontrolle (via Pyright)
Go-to-Definition
Hover-Docs / Signaturen
Linting (flake8, pylint, …) schwach
Formatéierung (Black-kompatibel)
Import-Sortéierung (isort)
Vitesse normal 10–100× méi séier

Pylance ass de Language Server — de Motor hannert IntelliSense, Autovervollständigung, Typ-Kontrolle a Refactoring. Ouni Pylance (oder e gläichwäertege Pyright-baséierte Server) sinn Python-Dateien fir VS Code am Fong „blann Text".

Ruff ass dat Linting- a Formatéierungs-Tool — geschriwwen a Rust, extrem séier, als Ersatz fir flake8, pylint, isort, pyupgrade a Black konzipéiert. Alles an engem eenzege Binary.


Wou kommen d'Astellungen hin?

User Settings vs. Workspace Settings — Scope-Iwwerbléck

Faustreegel: Tool-Präferenzen (Wat benotze ech?) → User Settings. Projet-Verhalen (Wéi streng?) → Workspace Settings.

An mengem Setup benotzen ech dës Entlaaschtung bewosst global an de User Settings. Fir Teams oder Repositorien mat staark ënnerschiddleche Standarden kann Workspace-Scoping awer déi besser Léisung sinn.

Kolonnen
python.languageServer
User (global)
Global Präferenz — gëlt fir all Projeten
python.analysis.typeCheckingMode
Workspace
Strenge variéiert je Projet (strict / basic / off)
python.analysis.extraPaths
Workspace
Projektspezifisch Import-Pfaden
python.defaultInterpreterPath
Workspace
Jidde Projet notzt säin eegent venv
python.analysis.diagnosticMode
Workspace
Belaaschte Workspaces brauchen "openFilesOnly"
[python] › editor.defaultFormatter
User (global)
Ruff als Standard-Formatter fir all Python-Dateien

An de Settings-Dateien konkret

User Settings (%APPDATA%\Code\User\settings.json):

{
  "ruff.nativeServer": "on",
  "python.languageServer": "Pylance",
  "[python]": {
    "editor.defaultFormatter": "charliermarsh.ruff",
    "editor.formatOnSave": true
  }
}

Och hei gëllt: D'Formatter-Zouweisung funktionéiert nëmmen, wann d'Extension charliermarsh.ruff wierklech installéiert ass.

Workspace Settings (.vscode/settings.json am Projetordner):

{
  "python.analysis.typeCheckingMode": "basic",
  "python.analysis.diagnosticMode": "openFilesOnly",
  "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python"
}

Ruff installéieren: global oder lokal?

Empfehlung: béids — global CLI + lokaalt Binary am venv.

Global (fir all Projeten, ouni venv-Konflikt):

# Mat pipx — empfohlen, well isoléiert:
pipx install ruff

# Oder klassesch global:
pip install ruff

Projetlokal (am venv vum Projet):

# Am aktivéierte venv:
pip install ruff

Oder als Dev-Ofhängegkeet an pyproject.toml:

[project.optional-dependencies]
dev = ["ruff>=0.4.0"]

VS Code Extension (charliermarsh.ruff)

Viraussetzung: D'VS-Code-Extension charliermarsh.ruff muss installéiert sinn. Déi reng Zouweisung editor.defaultFormatter = charliermarsh.ruff geet net duer, wann d'Extension feelt.

Empfohlene Annonce an den VS-Code-User-Settings (%APPDATA%\Code\User\settings.json):

An mengem Setup ass zousätzlech den nativen Ruff-Server aktivéiert:

{
  "ruff.nativeServer": "on",
  "[python]": {
    "editor.defaultFormatter": "charliermarsh.ruff"
  }
}

D'Extension gëtt an de User Settings aktivéiert — eemol, global. Si erkennt automatesch d'Prioritéit:

  1. Projeteegenst ruff-Binary am venv → gëtt bevorzugt
  2. Global via pipx installéierten ruff
  3. Leschten Fallback: de Bundled-Binary deen mat der Extension geliwwert gëtt
ext install charliermarsh.ruff

Empfohlen Setup 2026

  1. Extensions installéieren: ms-python.vscode-pylance + charliermarsh.ruff
  2. Pylance-Linting reduzéieren (Ruff iwwerhëlt dat):
    "python.analysis.diagnosticMode": "openFilesOnly"
  3. Ruff als Formatter setzen (User Settings, eemol global)
  4. Pro Projet: pyproject.toml oder ruff.toml fir Lint-Regelen
# pyproject.toml — Ruff-Konfiguratioun
[tool.ruff]
line-length = 120
target-version = "py311"

[tool.ruff.lint]
select = ["E", "F", "I", "UP"]  # flake8 + isort + pyupgrade
ignore = ["E501"]                # Zeilenlängt iwwert de Formatter

Copyright & Datum

D'Blog-Datum (21. Mäerz 2026) ass am Frontmatter gespäichert a gëtt vum Template ausgewäert. Den Auteur an de Copyright (© 2026 Nejat Philip Eryigit · ready-4-IT.com) kommen aus der globaler site.yaml a erschéngen am Säiten-Footer.


Fazit: Pylance duerend un — richteg konfigureiert

Kuerz: Pylance net ausschalten — richteg konfigureieren. Wien Pylance „bei Bedarf" an- a ausschallt, mécht sech onnéideg Aarbecht ouni echte Virdeel.

Pylance ass den Motor hannen IntelliSense, Hover-Docs, Go-to-Definition a Refactoring — d'Features déi VS Code zu enger richteger Entwécklungsëmfeld maachen. Bei richteger Konfiguratioun verursaacht en kaum Mehraufwand.

Duerend an de User Settings (eemol, global)

{
  "ruff.nativeServer": "on",
  "python.languageServer": "Pylance",
  "[python]": {
    "editor.defaultFormatter": "charliermarsh.ruff",
    "editor.formatOnSave": true
  }
}

An mengem aktuelle Setup ass dat bewosst userwäit konfiguréiert. Teams mat anere Konventiounen zéien de Scope vläicht méi enk a halen méi projektspezifesch Regelen an .vscode/settings.json.

Pro Projet an .vscode/settings.json

{
  "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
  "python.analysis.typeCheckingMode": "basic",
  "python.analysis.diagnosticMode": "openFilesOnly"
}

diagnosticMode: openFilesOnly ass den entscheedende Schalter fir Python-Projeten mat ville Fichieren oder externen Ofhängegkeeten: Pylance analyséiert nëmme geöffnete Tabs amplaz dat ganzt Projet am Hannergrond ze duerchsichen. Den Editor bleift séier — och bei méi grousse Projeten.

Wéini Pylance per Workspace ausschalten?

Nëmme wann e Workspace kee dedizéierten venv brauch — z. B. reng Hëllefsskripten ouni Typ-Ofhängegkeeten. An deem Fall duegt en workspace-lokale Override:

{ "python.languageServer": "None" }

Dat deaktivéiert Pylance nëmme fir dëse Workspace, ouni déi global User-Setting ze änneren.

D'Aufgabenteelung bleift kloer

Aufgab Tool Wou konfigureieren
IntelliSense, Typ-Prüfung, Refactoring Pylance User Settings (ëmmer un)
Linting, Formatting, Import-Sortéierung Ruff User Settings (ëmmer un)
Strenge vun der Typ-Prüfung typeCheckingMode Workspace Settings
Wéi ee venv defaultInterpreterPath Workspace Settings

flake8, pylint, mypy, isort, Black — ginn net méi gebraucht. Ruff ersat se all.


© 2026 Nejat Philip Eryigit · ready-4-IT.com · Publizéiert: 21. Mäerz 2026


Support the Journey & Development! 🚀

If my IT guides or the Snapmaker Wiki saved your project (or your hardware), I'd appreciate a coffee! ☕
Your support doesn't just cover hosting and testing costs—it also fuels the development of my apps and tools. Every donation helps me dedicate more time to coding solutions that make our tech-life easier. Thank you for being part of this!

☕ Donate via PayPal