4

我正在使用Visual Studio的Python工具。 (注意,不是IronPython。)如何在调试模式下将VS的命令行参数传递给Python?

我需要使用从命令行传递给模块的参数。通过在代码窗口中右键单击并选择“从调试开始”,我看到如何在Debug中启动模块。但是这种方法从来不会提示我输入命令行参数,并且len(sys.argv)总是== 1.

如何在调试模式下启动我的模块并将参数传递给它,以便sys.argv具有多于1会员?

+0

按'super'(带小窗口的符号);输入'cmd';打开'cmd.exe';去你的项目,... :-P – LittleByBlue

+0

在你的建议,我刚刚尝试过。它运行python模块,但不是在Visual Studio中。还有其他建议吗? – philologon

+0

所以任何人都可以想出一个解决方法D.阿尔维诺的声明,“它是一个或其他。” ?我可以编写另一个调用Windows命令行的.py文件来调用我的真实.py文件,但在调试中运行它?也许我可以得到len(sys.argv),如果它== 1然后尝试打开一个sysargv.txt文件? – philologon

回答

0

您想从调试下拉菜单中选择“使用Python交互执行项目”。此键盘快捷键是Shift + Alt + F5。当你这样做时,你将在屏幕的底部打开一个名为Python Interactive的窗口,你将看到你的打印语句和任何提示来输入你的程序。

虽然这不允许您也进入调试模式。它是一个或另一个。

+0

谢谢。我调整了这个问题的标题,以反映我在调试模式下处理命令行参数的兴趣。对不起,我之前没有说清楚。这是我的疏忽。 – philologon

+0

在这种情况下,听起来像VS正在使用pythonw.exe而不是python.exe来运行您的python文件。当您使用调试启动程序时,在“进程”(VS左上角)中,它是否说pythonw.exe?如果是这样,那么这使得终端窗口在运行程序时不会出现。如果您想将输入传递到您的程序中,则需要使用python.exe运行它。 – David

+0

在出现的控制台窗口中,它将python.exe作为窗口标题。 – philologon

6
  1. 转到您的项目属性,无论是在项目选择“属性”,右键单击或通过从项目菜单中选择属性。

  2. 点击Debug,然后在“Script Arguments”字段中输入你的参数。

  3. 保存。

+0

我一直在没有项目的情况下工作 - 只是在编辑器中打开的.py文件。有没有办法做到这一点,而不创建一个项目,或者是一个必需的步骤? – philologon

+0

您是否尝试将args直接传递给命令行的脚本? 为了测试的目的,你可能想遍历sys.argv并打印出它包含的内容。 –

+0

@jgfооt,非常感谢!这正是我期待的! – plditallo

0

我已经通过在脚本的第一行放置一个断点并在VS中打开立即窗口(您可以在脚本的上下文中执行命令)来解决此问题。然后我运行

import sys 
sys.argv += 'arg1 arg2 --arg3'.split() 
相关问题