我正在使用Visual Studio的Python工具。 (注意,不是IronPython。)如何在调试模式下将VS的命令行参数传递给Python?
我需要使用从命令行传递给模块的参数。通过在代码窗口中右键单击并选择“从调试开始”,我看到如何在Debug中启动模块。但是这种方法从来不会提示我输入命令行参数,并且len(sys.argv)总是== 1.
如何在调试模式下启动我的模块并将参数传递给它,以便sys.argv具有多于1会员?
我正在使用Visual Studio的Python工具。 (注意,不是IronPython。)如何在调试模式下将VS的命令行参数传递给Python?
我需要使用从命令行传递给模块的参数。通过在代码窗口中右键单击并选择“从调试开始”,我看到如何在Debug中启动模块。但是这种方法从来不会提示我输入命令行参数,并且len(sys.argv)总是== 1.
如何在调试模式下启动我的模块并将参数传递给它,以便sys.argv具有多于1会员?
您想从调试下拉菜单中选择“使用Python交互执行项目”。此键盘快捷键是Shift + Alt + F5。当你这样做时,你将在屏幕的底部打开一个名为Python Interactive的窗口,你将看到你的打印语句和任何提示来输入你的程序。
虽然这不允许您也进入调试模式。它是一个或另一个。
谢谢。我调整了这个问题的标题,以反映我在调试模式下处理命令行参数的兴趣。对不起,我之前没有说清楚。这是我的疏忽。 – philologon
在这种情况下,听起来像VS正在使用pythonw.exe而不是python.exe来运行您的python文件。当您使用调试启动程序时,在“进程”(VS左上角)中,它是否说pythonw.exe?如果是这样,那么这使得终端窗口在运行程序时不会出现。如果您想将输入传递到您的程序中,则需要使用python.exe运行它。 – David
在出现的控制台窗口中,它将python.exe作为窗口标题。 – philologon
转到您的项目属性,无论是在项目选择“属性”,右键单击或通过从项目菜单中选择属性。
点击Debug,然后在“Script Arguments”字段中输入你的参数。
保存。
我一直在没有项目的情况下工作 - 只是在编辑器中打开的.py文件。有没有办法做到这一点,而不创建一个项目,或者是一个必需的步骤? – philologon
您是否尝试将args直接传递给命令行的脚本? 为了测试的目的,你可能想遍历sys.argv并打印出它包含的内容。 –
@jgfооt,非常感谢!这正是我期待的! – plditallo
我已经通过在脚本的第一行放置一个断点并在VS中打开立即窗口(您可以在脚本的上下文中执行命令)来解决此问题。然后我运行
import sys
sys.argv += 'arg1 arg2 --arg3'.split()
按'super'(带小窗口的符号);输入'cmd';打开'cmd.exe';去你的项目,... :-P – LittleByBlue
在你的建议,我刚刚尝试过。它运行python模块,但不是在Visual Studio中。还有其他建议吗? – philologon
所以任何人都可以想出一个解决方法D.阿尔维诺的声明,“它是一个或其他。” ?我可以编写另一个调用Windows命令行的.py文件来调用我的真实.py文件,但在调试中运行它?也许我可以得到len(sys.argv),如果它== 1然后尝试打开一个sysargv.txt文件? – philologon