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.
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):
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):
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.
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):
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:
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.
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.
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.
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!