VSCodeのCode RunnerをPyCharmの挙動に合わせる

Python

皆さんはPythonを書く時、何のIDEを使われているでしょうか。私は普段PyCharmを利用しています。
ただ、WSL上での作業などで時折VSCodeを用いることがあり、PyCharmとの環境差分に苦しめられています。今回はそうした苦悩を軽減するためのTipsになります。

要約

以下をsettings.jsonに記述することで、PyCharmのRunを行った時の動作を再現できます。

{
    "code-runner.runInTerminal": true,
    "code-runner.executorMap": {
        "python": "export PYTHONPATH=$workspaceRoot && python $fullFileName"
    },
}

以下解説になるので、動けば良いという方は飛ばしてください。

そもそもPyCharmの実行時の挙動とは

PyCharmで上記のようにsys.pathをprintしてみると、以下のようにimportの検索対象には<実行対象のファイルが存在するフォルダ>と<PyCharmのプロジェクトのルート>が含まれていることが分かります。これはPyCharmが裏でよしなにやってくれているみたいです。

[
'C:\\Users\\hoge\\python_project\\src',
'C:\\Users\\hoge\\python_project\\',
]

<実行対象のファイルが存在するフォルダ>がPYTHONPATHに加わるのはPythonのデフォルトの挙動なので、後はプロジェクトのrootをimport時に解決できるように設定を加えればVSCodeの挙動をPyCharmに似せられそうです

VSCodeのCodeRunnerの設定を変更する

CodeRunnerのデフォルトの挙動はGithubに載っていますpython -uになっています。settings.jsonをいじってここを変更します。
あとは要約に書いた通りの結果になります。$workspaceRoot などのCodeRunnerで使える予約語はREADME.mdに載っています。

コメント

タイトルとURLをコピーしました