1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCodeでPythonスクリプトを任意のディレクトリから実行する方法

Posted at

Pythonスクリプトを実行する際、カレントディレクトリ(作業ディレクトリ)が意図した場所と異なると、ファイルの読み込みエラーなどが発生することがあります。特に、CSVファイルなど外部データを扱う場合、スクリプトが探す場所が異なっていると、FileNotFoundError になってしまいます。

こちらでは、VSCodeでPythonスクリプトを指定したディレクトリから実行する方法 を紹介します。


1. カレントディレクトリの確認方法

まず、Pythonスクリプトがどのディレクトリで実行されているのかを確認してみましょう。以下のコードをPythonスクリプトの冒頭に追加して、現在のカレントディレクトリを表示します。

python
import os

print("Current Working Directory:", os.getcwd())

例えば、VSCodeで example/script.py を実行したときに、出力が example/ ではなく example/other_directory/ になっている場合、スクリプトが意図しない場所から実行されていることが分かります。


2. launch.json で実行時のディレクトリを設定する

VSCodeのデバッグ実行時に、カレントディレクトリを指定する方法 です。
Pythonスクリプトを実行するときに、常に特定のディレクトリをカレントディレクトリとして指定できます。

手順

  1. VSCodeで launch.json を開く
    Cmd + Shift + P でコマンドパレットを開き、「launch.json」を検索し、launch.json を開きます。
  2. 設定を追加
    launch.json に以下の設定を追加します。この設定で、Pythonスクリプトを実行するときに、常に指定したディレクトリから実行されるようになります。
json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "C:/Users/username/Documents/example/data"
        }
    ]
}

ここで、"cwd" を /Users/username/Documents/example に指定すると、VSCode上でPythonスクリプトを実行するたびに、カレントディレクトリが example/ になる ように設定されます。
3. VSCodeを再起動して確認
設定を反映させるため、VSCodeを再起動します。
再度、Pythonスクリプトを実行して os.getcwd() の出力を確認してください。


3. settings.json でVSCodeのターミナルのカレントディレクトリを設定する

Pythonスクリプトを ターミナル(手動実行)で動かす場合 は、settings.json に ターミナルのデフォルトディレクトリ を設定すると便利です。

手順

  1. VSCodeで settings.json を編集
    Cmd + Shift + P でコマンドパレットを開き、「settings.json」を検索し、開きます。
  2. 以下の設定を追加
json
{
    "terminal.integrated.cwd": "/Users/username/Documents/example"
}

これで、VSCodeで新しいターミナルを開くと、自動的に /Users/username/Documents/example に移動する ようになります。
3. 設定の確認
VSCodeのターミナルを開いて pwd(Mac/Linux) または cd(Windows) で、カレントディレクトリが変更されていることを確認しましょう。


4. Pythonスクリプト内で os.chdir() を使ってディレクトリを変更する

もし VSCodeの設定を変更せず、Pythonスクリプトの中でカレントディレクトリを変更したい場合 は、os.chdir() を使います。

方法

json
import os

# 実行ディレクトリを指定
os.chdir('/Users/username/Documents/example')

# 現在のディレクトリを確認
print("Current Working Directory:", os.getcwd())

これをスクリプトの最初に書いておけば、実行するたびにカレントディレクトリを指定の場所に変更 できます。


まとめ

Pythonスクリプトのカレントディレクトリを指定する方法として、以下の4つの方法を紹介しました。

方法 適用範囲 設定方法
launch.json を使う デバッグ実行時のディレクトリを変更 VSCodeの launch.json を編集
settings.json を使う VSCodeターミナルのデフォルトディレクトリを変更 settings.json を編集
os.chdir() を使う スクリプト実行時に動的に変更 Pythonコード内で os.chdir() を記述
cd コマンドを使う 手動で移動してから実行 ターミナルで cd を実行
状況に応じて最適な方法を選んでください!
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?