最近、スラスラわかるPython と 12歳からはじめる ゼロからの Pythonゲームプログラミング教室 を読みつつ Python の初歩を勉強していたりします。
これらの書籍では、VS Code で Python を学ぶことができるのですが、デバッグ実行は使っておらず、「python.exe」を使用したスクリプトの直接実行が実行時のパターンとして使われていました。
私は、VS Code でデバッグ実行しているので、その際に作業ディレクトリ (ワークディレクトリ) を変更していた際の覚書を残しておきたいと思います。
VS Code の Python の開発については、Python の拡張機能をインストールすると、インテリセンス等のサポートが行われますので、開発の利便性が向上します。
初回のデバッグ実行時や、デバッグから「Python」の構成を選択することで、Python のデバッグ実行を行うための「launch.json」が生成されますので、デバッグ実行時の構成については、このファイルをメンテナンスすることで対応ができます。
Launch.json attributes / Launch.jsonの属性 に記載されている情報から確認できるのですが、デフォルトの作業ディレクトリについては「"cwd": "${workspaceRoot}"」が設定されています。
この設定の場合、VS Code が開いているディレクトリが作業ディレクトリになります。
このようなディレクトリ構造となっており、「test.py」を実行した場合は、スクリプトが配置されているディレクトリの「TEST2」ではなく、「TEST」が作業ディレクトリとして設定されて実行が行われます。
実際の動作については Python で次のスクリプトを実行することで確認ができるかと。
import os print(os.getcwd())
書籍の内容は、スクリプトのディレクトリが作業ディレクトリとして設定されている想定で、各種ファイルの操作が行われていますので、デバッグ実行時に、ワークディレクトリがスクリプトのパスと同じディレクトリになるようにしたい場合には、「launch.json」の「cwd」をブランクに設定しておきます。
「"cwd": ""」を設定する形ですね。
ブランクに設定 / 設定を省略している場合は、デバッグ実行を行ったスクリプトと同一ディレクトリが作業ディレクトリになりますので、デバッグ実行で書籍の内容を進められるようになるかと。
Python の設定を直接変更するか、構成の追加を行い、「cwd」の設定が変更してある設定を作成し、デバッグ時にはそちらを使うようにしておくことで対応することができるかと思います。
「launch.json」と「settings.json」の設定内容については、どういうものがあるか、時間があるときに少しずつ眺めようかと。
[…] 参考URL : https://blog.engineer-memo.com/2017/09/18/vs-code-%E3%81%AE%E4%BD%9C%E6%A5%AD%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E8%A6%9A%E6%9B%B8/ […]
ゼロから作るDeep LearningをVSCodeで勉強中、sys.path.appendでエラー出たときの対処法 | IT技術情報局
1 12月 18 at 13:50