質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

4238閲覧

VSCodeでPythonのデバッグ時に引数を渡せない

shuang

総合スコア11

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/02/27 16:21

VSCode使用時にPythonのデバッグを行う際、コマンドライン引数を渡せません。
使っているモジュールはargparseで、parse_args()でエラーが出ています。
どのようにしたらLaunch.jsonに設定した引数情報をプログラムに読み込めるでしょうか?

test.py

1import argparse 2 3parser = argparse.ArgumentParser() 4parser.add_argument("test", type=str) 5args = parser.parse_args()

launch.json

1{ 2 "version": "0.2.0", 3 "configurations": [ 4 { 5 "name": "Python: Current File", 6 "type": "python", 7 "request": "launch", 8 "program": "${file}", 9 "console": "integratedTerminal", 10 "args": ["hello"] 11 } 12 ] 13}

terminal

1C:\Users\{ユーザー名}\Documents\VSCode_Projects\test> cmd /C "C:\Users\{ユーザー名}\AppData\Local\Programs\Python\Python39\python.exe c:\Users\{ユーザー名}\.vscode\extensions\ms-python.python-2022.0.1814523869\pythonFiles\lib\python\debugpy\launcher 59657 -- c:\Users\{ユーザー名}\Documents\VSCode_Projects\test\test.py " 2usage: test.py [-h] test 3test.py: error: the following arguments are required: test

error

1Exception has occurred: SystemExit 22 3 File "C:\Users\{ユーザー名}\Documents\VSCode_Projects\test\test.py", line 5, in <module> 4 args = parser.parse_args()

念のためVSCodeの設定ファイルも添付します。

settings.json

1{ 2 "editor.suggestSelection": "first", 3 "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue", 4 "terminal.integrated.defaultProfile.windows": "Command Prompt" 5}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

(やりたいことによりますが、ここでは)type=str が余計だと思います。

python

1import argparse 2 3parser = argparse.ArgumentParser() 4parser.add_argument("test") # type=str を削った 5args = parser.parse_args() 6print('test:', args.test)

投稿2022/02/27 16:45

編集2022/02/27 17:35
bboydaisuke

総合スコア5339

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shuang

2022/02/28 03:08

type=strをなくしてもエラー内容に変化ないようです。
bboydaisuke

2022/02/28 03:14 編集

「エラー内容に変化ない」なら試しに "args": ["hello"] を "args": ["test"] とか "args": ["test=abc"] などと変えて挙動を観察してみるとよいと思います。
bboydaisuke

2022/02/28 03:43 編集

上のコメントは「launch.json の書き方に問題があって引数を渡せてないのでは?」と思ったので書いたものですが、ターミナルの出力を見ることで渡せてないことはわかりました。正しくない launch.json を編集していたり、launch.json にある複数の設定の内、今使っているところとは違うところに args を追加しているのではないかと思います。 とりあえず、launch.json は歯車アイコンをクリックして開くのが「今使ってる launch.json」なので、歯車マークをクリックして「正しい launch.json を編集しているかどうか」はチェックした方が良いと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問