假设我有以下脚本:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-t','--text',
help="Input a text")
args = parser.parse_args()
def test_function(x):
y = x
print(y)
if __name__ == '__main__':
test_function(args.text)
我从控制台调用的
python newtest.py -t hello
问:在Visual中,是否有一种方法可以从命令行执行代码(如上面所示),但同时在test_function
中的test_function
行设置一个断点,以便调试从命令行调用的脚本?
现在它只是被执行并且断点被忽略了,基本上它做的是而不是,停止在这里:
发布于 2022-05-27 19:55:07
你的问题没有完全得到答案,但我的网络搜索在我找到我想要的东西之前就把我带到了这里,那就是用参数调用脚本并使用vscode调试器。这并不是调试终端中调用的内容,而是在运行调试时设置调用的内容。如果你有很多不同的东西在你的文件夹里,那可能是一个麻烦,试图维护它们全部或类似的东西,但是.
如果您转到launch.json
目录中的.vscode
文件,您将得到调试信任。您可以在其中添加args
的列表项。因此,我的文件如下所示,然后调用我正在调试的任何python文件加上-r asdf
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"args": [
"-r asdf"
],
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true
}
]
}
如果您有多个参数,您不能将它们放在同一个字符串中,它们应该是单独的、分开的元素。一开始并没有意识到这一点,但毕竟这是一个清单。所以拥有多个应该是这样的:
...
"args": [
"-r asdf",
"-m fdsa"
]
...
https://stackoverflow.com/questions/70731308
复制相似问题