如何使用 Spyder 在需要参数的基于命令行的脚本上设置断点?

问题描述 投票:0回答:2

我恢复了一个项目,其中的代码最初是在带有传递参数的命令行中启动的。

为了使用 Spyder 调试它,我创建了一个基本的 python 文件来调用 python 程序使用

subprocess.popen(['python', 'FileName', 'arguments'])

(我也尝试过

os.system()
具有相同的行为)。

像往常一样,我使用断点来查找代码错误,但它似乎没有在子进程内工作,并且程序没有按预期停止(根本没有),我想知道为什么;我可能遗漏了什么。

所以:

  • 我正在使用子进程,但是还有另一种更相关的方法来运行带有传递参数的 python 程序
  • How can I debug the code: is there an option inside Spyder (looked for, but didn't see obvious things)
python spyder
2个回答
0
投票

Spyder(或任何其他 Python 调试器)只能调试当前程序。一旦你使用

subprocess
os.system
你启动一个新的不相关的程序,Spyder 无法调试它。

直接加载另一个(主要)Python 文件的正确方法,即您尝试通过

popen(['python', 'FileName'...
启动的文件,在 Spyder 中,然后在每个文件的运行/配置中设置参数...(或 Ctrl F6) 菜单。搜索 General Settings 组,然后您将能够提供命令行参数。

一旦完成,您就可以正常调试程序了……


0
投票

谢谢你的回答。

按照建议,我配置了“命令行选项”并直接运行Python文件而不使用subprocess.popenos.system,不幸的是程序没有在断点处停止,我不明白我错过了什么。

保罗

© www.soinside.com 2019 - 2024. All rights reserved.