web-dev-qa-db-ja.com

Visual Studio Code:run python file with arguments

VSコード内でpythonファイルを引数付きで実行する簡単な方法はありますか?

argsキーワードを使用してlaunch.jsonファイルにカスタム構成を追加できることはわかっています。ただし、さまざまな引数を使用したいという理由だけでlaunch.jsonを毎回変更するのは面倒です。

9
Thyrst'

回避策は、スクリプトにコマンドライン引数を要求させることです(内部VSCodeコンソールで)。

readline を使用すると、これをはるかに使いやすくすることができます。これにより、上矢印キーを押して前のコマンド(コマンド履歴)を順に切り替えるなどの操作を実行できます。例:

import argparse, readline

def main():
  # ask for additional command line arguments if needed (for VSCode)
  parser = argparse.ArgumentParser()
  parser.add_argument('--interactive', action='store_true', default=False)
  (args, rest) = parser.parse_known_args()
  if args.interactive:
    try: readline.read_history_file()
    except: pass
    rest += input("Arguments: ").split(" ")  # get input args
    try: readline.write_history_file()
    except: pass

  # your other script arguments go here
  parser.add_argument("-output-dir", default="/out")
  # ...
  args = parser.parse_args(rest)

  print(args)

if __name__ == "__main__":
  main()

次に、常に--interactive引数を渡すようにVSCodeを設定します。ブレークポイントを設定しても、スクリプトは常に(履歴付きの)引数を要求します。

2
Jotaf

これを行うには、カスタムタスクを追加できます。これはtasks.jsonを扱います。プロジェクトのデフォルトのtasks.jsonファイル(プロジェクトフォルダー)を追加できます。次の手順を実行します。キーボードを押す Ctrl+Shift+B 次のポップアップを表示します

enter image description here

Configure Build Taskをクリックします。次の場所に作成されたカスタムtasks.jsonがある場合は.vscode/tasks.jsonエディターが開きます。そうでない場合は、既存のタスクランナーの候補がドロップダウンで表示されます。

私たちの意図は、プロジェクトのカスタムtasks.jsonを作成して、ドロップダウンからOthersオプションを選択する必要があるものを作成することです。以下のスクリーンショットを確認してください。

enter image description here

Othersオプションを選択すると、デフォルトのtasks.jsonがプロジェクトのルートディレクトリから次の場所に作成されます.vscode/tasks.json以下は、tasks.jsonの例です

enter image description here

pythonをサポートするようにtasks.jsonを編集します。

  1. Commandプロパティを"echo"から"Python"に変更します
  2. ShowOutputを"Always"のままにします
  3. 引数(引数)を["Hello World"]から["${file}"](ファイル名)に変更します
  4. 最後のプロパティを削除problemMatcher

  5. IsShellCommandとバージョンプロパティを変更せずに維持する

  6. 変更を保存します

これでpyファイルを開いて、ショートカットを使ってうまく実行できます Ctrl+Shift+B

2

プロジェクトにtask.jsonファイルがない場合は、Ctrl + Shift + Bを押して新しいファイルを作成し、表示されている最初のオプションを選択して、それらすべてを以下に置き換えます。

{
    // See https://go.Microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "run python with argument",
            "type": "Shell",
            "command": "python PROGRAM_NAME.py ARG1 ARG2 ...",
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}  

それ以外の場合は、既存のtasks.jsonに上記の構成を追加します。

上記の構成のPROGRAM_NAMEをプログラム名に置き換え、ARG1 ARG2 ...は特定の引数を示します。

結局、CTRL + SHIFT + Bで作成したタスクを実行し、新しい「run python with argument)」タスクを選択できます。

1
Ehsan Ahmadi

仮想環境を使用している場合は、環境のpythonへの絶対パスを使用してください。

0
Micheal Bee