15
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VS Code で Python の Rename Symbol ができないときの対処法

Last updated at Posted at 2019-04-01

久しぶりに以前Pythonで書いたコードを開いてみたのですが,なかなかアレなコードだったので,リファクタリング(機能はそのままに,実装方法を改善すること)をすることにしました.

そのときに,名前の一括変更ができず手こずったので,対処法を共有しておきます.(要約はこちら

Pythonのリファクタリングには,ropeのインストールが必要

Visual Studio Codeには,F2キーを押すことで,コードの中で使われている変数や関数などの名前を,一括して書き換えられる機能があります.
(cf. Refactoring source code in Visual Studio Code # Rename symbol

これを使って,ある関数の名前を書き換えようと思ったのですが,失敗しました.
VSCode曰く「Renameに失敗したで」「リファクタリングしたいんやったらropeを入れてや」とのこと

どうやら,リファクタリング機能の利用には,ropeというパッケージが必要なようです.「インストールしますか」と聞かれているので,Yesを押して,よしなに実行してもらいましょう.

ちなみに,パッケージのインストールはpip install ***,アンインストールはpip uninstall ***です.
(cf. 【Python】pipの使い方 | TASK NOTES ※2015)

あと,もし権限がないとか言われてインストールできなかったら,コマンドプロンプトを管理者権限で開いて,そこで,pip install ropeしてください.

Workspaceで開くのも忘れずに!

これで準備ができたはず!そう思ったのですが,F2キーを押し,名前を書き換え,Enterキーを押しても変化がありません!どうしてでしょうか?(再現VTR)
20190331224346.gif

困ったらGoogle先生に聞きましょう^^「vscode python rename symbol not working」などで調べていると次の情報がヒットしました.

rename does not work · Issue #1260 · Microsoft/vscode-python · GitHub

I slove the problem . the rename does work when the file in workspace .

「ワークスペース」とやらで開いたら動いたそうです.ワークスペースって何だよっと思ったので,「Macの話ならいいや」と,スルーしていた別の記事も見てみます.

python - Visual Studio Code (Mac OS) rename symbol doesn't work - Stack Overflow

I solved the problem by first closing the open folder I was in:

File > Close Folder.

then navigating to a sub folder of .py file I was editing, and opening it. >In my case it was

  1. Click the little document icon in the upper left of screen
  2. In the welcome screen, choose "open folder"
  3. navigate to my desktop folder (where my .py file is)

Now refactoring works as expected

要は「まずはフォルダー単位で開いて,それからファイルを開くと良いぜ」ということらしいです.
Ctrl+Shift+Eで,VSCodeのエクスプローラを開いてみると,確かに「NO FOLDER OPENED」となっていますね.
「NoFolderOpened」だってよ!

[Open Folder]から,カレントディレクトリ(いま開いているファイルがあるフォルダの階層)を指定しましょう.以下のように,「NO FOLDER OPENED」と書かれていた場所がカレントディレクトリの名前に変わっているはずです.
image.png

あとは,開きたいファイルを選択して,F2(Rename Symbol)を実行してみます.
ちゃんと動いたよ!

ちゃんと動きました!良かった!

ちなみに,別のフォルダを開くときは,Ctrl + K, O でもできます.

対処法は意外と単純でしたね.

  • ropeのインストール
  • ファイル単体ではなく,フォルダ単位で開くこと

これらができていなかったために,Rename Symbol に失敗したようです.

初歩的過ぎて発信されてないのか,検索力が足りないのか,日本語の情報が全然ヒットしなかったので,一連の流れも含めて書き留めておきました.誰かの時短に繋がれば幸いです.

TL;DR

  • まずはVSCodeのターミナルを開く(Ctrl+@)→pip install ropeしよう!
  • Workspaceを開く(Ctrl+Shift+E → Open Folder)→ファイルを選択し直そう!
15
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?