I am working with Python Tools for Visual Studio. (Note, not IronPython.)
I need to work with arguments passed to the module from the command line. I see how to start the module in Debug by right-clicking in the code window and selecting "Start with Debugging". But this approach never prompts me for command line arguments, and len(sys.argv) always == 1.
How do I start my module in debug mode and also pass arguments to it so sys.argv has more than 1 member?
The steps are shown in the image linked here: https://i.stack.imgur.com/Hx5tf.png
In the json, in any of the configuration, add the args json parameter:
{ "name": "Python: Terminal (integrated)", "type": "python", "request": "launch", "stopOnEntry": true, "pythonPath": "${config:python.pythonPath}", "program": "${file}", "cwd": "", "console": "integratedTerminal", "env": {}, "args": [ "input2.csv", "output2.csv" ], "envFile": "${workspaceFolder}/.env", "debugOptions": [], "internalConsoleOptions": "neverOpen" }
Make sure you choose that environment while debugging
You want to select "Execute Project with Python Interactive" from the debug dropdown menu. The keyboard shortcut for this is Shift+Alt+F5. When you do that, you will have a window open at the bottom of the screen called Python Interactive and you will see your printed statements and any prompts for inputs from your program.
This does not allow you to also enter debug mode though. It is either one or the other.
Go to your project properties, either by right-clicking on the project and picking "Properties" or by picking Properties from the Project menu.
Click on Debug, then enter your arguments into the "Script Arguments" field.
Save.
I have solved this by putting a breakpoint on the first line of my script and opening the Immediate window in VS (where you can execute commands in the context of your script). Then I run