在 VSCODE 中调试 Python 脚本,同时使用 argparse 从终端调用它
Debug a Python script in VSCODE while calling it from terminal with argparse
假设我有以下脚本:
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 Code 中,有没有一种方法可以让我从命令行执行代码(如上所示),但同时也可以在例如在 test_function
中的 y=x
行,以便我可以调试从命令行调用的脚本?
现在只是执行,断点被忽略,基本上不会停在这里:
不完全是您问题的答案,但我的网络搜索在我找到我想要的东西之前将我带到了这里,即使用参数调用脚本并使用 vscode 调试器。这不会调试您在终端中调用的内容,而是设置您 运行 调试时调用的内容。如果您的文件夹中有很多不同的东西,尝试维护它们或类似的东西可能会很麻烦,但是...
如果您转到 .vscode
目录中的 launch.json
文件,您将获得调试配置。您可以在其中为 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"
]
...
假设我有以下脚本:
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 Code 中,有没有一种方法可以让我从命令行执行代码(如上所示),但同时也可以在例如在 test_function
中的 y=x
行,以便我可以调试从命令行调用的脚本?
现在只是执行,断点被忽略,基本上不会停在这里:
不完全是您问题的答案,但我的网络搜索在我找到我想要的东西之前将我带到了这里,即使用参数调用脚本并使用 vscode 调试器。这不会调试您在终端中调用的内容,而是设置您 运行 调试时调用的内容。如果您的文件夹中有很多不同的东西,尝试维护它们或类似的东西可能会很麻烦,但是...
如果您转到 .vscode
目录中的 launch.json
文件,您将获得调试配置。您可以在其中为 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"
]
...