「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 「basedpyright-langserver」を使用した Python と詩のための Emacs

「basedpyright-langserver」を使用した Python と詩のための Emacs

2024 年 11 月 5 日に公開
ブラウズ:434

Emacs for Python and Poetry Using `basedpyright-langserver`

Python 用の現在の emacs セットアップには非常に満足していますが、セットアップが少し難しいことがわかりました。将来の自分と、確実な emacs 構成を探している他の Pythonista のために、ここにセットアップを文書化します。

なぜ著作権に基づくのか?

これまで、型チェックのニーズすべてにコマンド ラインで mypy --strict を使用してきましたが、mypy は非常に小さなコードベースであっても非常に遅く、--strict モードであってもそれほど遅くはありません。可能な限り厳格に。また、これは私の emacs セットアップに必要な言語サーバーでもありません。

basedpyright は pyright のフォークであり、チェックと信頼性の両方において優れた改善が施されています。これは、高速で驚くほど厳密な型チェッカーであり、優れた lint 機能も備えています。

私が経験している唯一の欠点は、AWS の boto3-stubs クライアントでは mypy ほどうまく動作しないことと、標準ではなく # pyright:ignore comments を標準の # type:ignore comments の代わりに使用していることです。私は、厳密に型チェックを行うエクスペリエンスを選択することで、これらの問題に対処できます。

basedpyright または pyright で動作するように Poetry プロジェクトを構成する

Poetry を使用する既存のプロジェクトがある場合は、仮想環境を少しいじりたくなるでしょう。

各プロジェクトのルートに移動し、次のコマンドを実行します:


poetry config --local virtualenvs.in-project true


これにより、poetry.toml ファイルがまだ存在しない場合は作成され、対応する設定が追加されます。

ただし、これは既存の仮想環境を実際に移動するわけではありません。この変更を有効にするには、既存の仮想環境を削除する必要があります。これは、

を実行すると見つかります。

poetry env info --path


.venv パスを .gitignore に追加し、pycodestyle など、使用する可能性のある他のツールの設定を追加することを忘れないでください。かなり混乱しています。

次に、構成セクションを pyproject.toml に追加して、basedpyright に仮想環境を探す場所を指示する必要があります。


[tool.pyright]
venv=".venv"
venvPath="."


私と違って、さまざまな Python 開発ツールの構成ファイルでまだ完全にオーバーランしていると感じていない場合は、pyrightconfig.json ファイルでこれを行うこともできます。

basedpyright を言語サーバーとしてインストールする

pyright よりも basedpyright の非常に優れた点の 1 つは、nodejs の依存関係をホイールとして構築するため、nodejs がインストールされているかどうかに関係なく、basedpyright がマシン上で確実に動作することです。

分離するには、通常、pip の代わりに pipx を使用して実行可能な Python パッケージをインストールすることをお勧めします。さあ、それをやってみましょう。


pipx install basedpyright


健全性をチェックするには、実行することを検討してください


basedpyright --version


basedpyright をインストールすると、basedpyright-langserver コマンドにもアクセスできるようになりますが、実際にはユーザーが操作できるようには書かれていないため、basedpyright-langserver またはbasedpyright-langserver --version などを実行すると、nodejs スタック トレースが取得されます。

basedpyright-langserver を使用するように emacs を設定する

読者の皆さんは、MELPA からパッケージをインストールする方法と、それを行うための推奨方法を知っていると仮定します。必要なパッケージはすべてここにあります:

  • 会社
  • lspモード
  • lsp-pyright
  • lsp-ui
  • Python モード

これらをインストールしてから、~/.emacs または ~/.emacs.d/init.el を開いて次を追加します:


;; lsp global settings
(add-hook 'after-init-hook 'global-company-mode)
(setq lsp-auto-guess-root t)

;; python
(require 'lsp-mode)
(setq lsp-pyright-langserver-command "basedpyright")
(add-hook 'python-mode-hook (lambda () (require 'lsp-pyright) (lsp)))


必要なのはこれだけです。

lsp モードのデバッグに関する一般的なヒント

すべてを正しく設定したように感じても、LSP モードで Poetry で利用できるはずのパッケージを見つけるのにまだ問題がある場合は、 にアクセスして、 を削除してみてください。 ~/.emacs.d/.lsp-session-v1

。これにより、lsp-mode がプロジェクト ルートを忘れて、強制的に再度検索するようになります。

コーディングを楽しんでください!

これにより、Python 開発環境で良いスタートが切れることを願っています。ご質問がございましたら、私は初心者なので、おそらくお役に立てませんが、emacs で basedpyright を使用するための追加のヒントやコツがあれば、マージ リクエストを検討します。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/webbureaucrat/emacs-for-python-and-poetry-using-basedpyright-langserver-ca9?1 侵害がある場合は、[email protected] に連絡して削除してください。それ
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3