Skip to main content

Python LSP 全面比較

也許你該試試別的 Python LSP。

什麼是 LSP​

LSP(Language Server Protocol)是一個標準化協議,讓編輯器和語言分析工具之間可以溝通,幫你做自動補全、型別提示、go-to-definition、hover 顯示型別資訊等工作。它不只影響補全速度,更包含型別推斷的準確度,以及 CI 的型別檢查結果是否和編輯器一致。

直接講結論​

舊世代的工具沒有任何使用他們的必要,如 Pylance/Pyright/Jedi/pylsp 等,速度慢,功能也少。

新世代的工具有 ty 和 Pyrefly,最大的差別在於 ty 還在 beta,而 Pyrefly 已經穩定版而且還有額外優化 Django / PyTorch,除非你非常討厭 meta(臉書)不然直接選 Pyrefly 就好了。還有一個 Zuban 是個人開發,想不到選他的理由。

如果你討厭 meta,又不想用不穩定的工具,那只有舊世代能用,舊世代裡面 Pyright 最多人用。

原本有寫更多選擇差異,但是想想...企業選擇不會看我這篇文章,個人選擇那些差異又不怎麼重要,既然都是無用資訊就把他們刪掉了。

規則支援度請見 Python Type System Conformance Test Results。