我恢复了一个项目,其中的代码最初是在带有传递参数的命令行中启动的。
为了使用 Spyder 调试它,我创建了一个基本的 python 文件来调用 python 程序使用
subprocess.popen(['python', 'FileName', 'arguments'])
(我也尝试过
os.system()
具有相同的行为)。
像往常一样,我使用断点来查找代码错误,但它似乎没有在子进程内工作,并且程序没有按预期停止(根本没有),我想知道为什么;我可能遗漏了什么。
所以:
Spyder(或任何其他 Python 调试器)只能调试当前程序。一旦你使用
subprocess
或 os.system
你启动一个新的不相关的程序,Spyder 无法调试它。
直接加载另一个(主要)Python 文件的正确方法,即您尝试通过
popen(['python', 'FileName'...
启动的文件,在 Spyder 中,然后在每个文件的运行/配置中设置参数...(或 Ctrl
F6) 菜单。搜索 General Settings 组,然后您将能够提供命令行参数。
一旦完成,您就可以正常调试程序了……
谢谢你的回答。
按照建议,我配置了“命令行选项”并直接运行Python文件而不使用subprocess.popen和os.system,不幸的是程序没有在断点处停止,我不明白我错过了什么。
保罗