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() 
相關問題