CursorでPythonファイルで定義元ジャンプが有効でない時の対応
結論
仮想環境を管理しているディレクトリ ~/.local/share/virtualenvs を削除することで解決しました。
rm -rf ~/.local/share/virtualenvs
環境
-
PC
-
MacBook Pro
-
Apple M3 Max
-
-
Cursor
-
Version: 0.46.8
-
OS: Darwin arm64 23.4.0
-
問題
CursorにPythonのコードを試しに書かせてみたら、定義元ジャンプ(command + click)が効かないことに気づきました。JavaScriptファイルでは正常に動作するため、問題はPython周りにあると推測しました。
VS Codeでインタープリターを指定し忘れてよく似た状況になるので確認したところ、Pythonインタープリターの検出が永遠に終わらず、仮想環境が正常に読み込まれない状況になっていました。
試したこと
再インストール(Universal → ARM64, x64)
最初にインストールしたのはUniversal版でした。ChatGPTに聞いてみるとそこら辺に原因があるとの回答があったので特に疑わず、ARM64版に切り替えてみました。状況は変わらず、定義元ジャンプは無効なままでした。
VS CodeではPythonファイルでの定義元ジャンプが有効なのでバージョン情報を見たらなぜかx64版でした。
-
Visual Studio Code
-
Version: 1.87.2
-
OS: Darwin x64 23.4.0
-
妙だなと思いつつ、試しにCursorもx64版をインストール。なんと定義元ジャンプが可能に!しかし、エミュレーション動作となり、起動が非常に遅くなるという問題がありました。
これ以外の解決方法はないものかと調べてみると似たような状況がフォーラムにて投稿されていました。
拡張機能を消した、古いPython仮想環境を消したなどの報告があるので試してみます。
b. 拡張機能の再設定
そもそも私は普段PyCharmを利用しており、VS Codeは使っていません。Cursorの初期設定でVS Codeの設定を引き継いだのですが、中にはDeprecatedのものもあり全体的に信用できません。この問題に関わらず1から作り直した方がいいと判断し、拡張機能をすべて削除しました。
拡張機能からPythonのみをインストール。作成済みの仮想環境を選択。依然としてインタープリターの検出は終わりませんでした。
c. 仮想環境ディレクトリの削除
フォーラム情報を参考にして、仮想環境が保存される~/.local/share/virtualenvs を削除しました。随分と前から当該ディレクトリは利用しておらず、各プロジェクトのディレクトリ直下に仮想環境を作成する運用にしているので問題はありません。
再起動すると定義元ジャンプが正常に機能しました!
まとめ
定義元ジャンプが無効になる原因は、Cursorが古い仮想環境情報をうまく処理できないことだったようです。同様の問題に遭遇した場合、仮想環境の管理ディレクトリをクリアすると解決する可能性があります。