2017-07-24 201 views
0

以下代碼無法啓動python命令行。QProcess可以啓動程序但不能啓動python(命令行)

QProcess *myProcess = new QProcess(this); 
myProcess->start("\"C:\\Program Files\\Python27\\python.exe\""); 

如果我取代(例如)

myProcess->start("\"C:\\Program Files\\Notepad++\\notepad++.exe\"") 

記事本中打開python27。爲什麼我的程序能夠啓動記事本而不是Python命令行?

我嘗試使用startDetached()的建議here但這並不有所作爲。

另外,QProcess ::錯誤()給了我錯誤5:未知錯誤。

+1

你想用python做什麼? python.exe是解釋器二進制文件,所以如果你想運行一個特定的.py腳本,你需要將它作爲參數傳遞給python,但是從命令行(使用'python script.py'運行cmd.exe而不是python作爲參數參數) – Lucian

+0

@ t020608你確定'python.exe'運行正常嗎?像雙擊它? – aghilpro

+0

@Lucian現在我只想看看我是否可以打開python。從長遠來看,我想要執行在我的Qt GUI中創建的Python腳本(理想情況下可以監視進度並暫停腳本)。我應該使用命令行嗎? – t020608

回答

0

如果你只是想使用的python控制檯「您必須使用cmd.exe應用程序從Windows
您必須在PATH蟒蛇所以Windows控制檯就會知道在哪裏把它從。
所以,你可以試試:另外,QProcess :: startDetached(「CMD」,「蟒蛇」)..看到更具體的語法細節here

+0

我試過這個,但打開命令提示符也不起作用。我已經嘗試過QProcess :: startDetached(「cmd.exe」)以及完整路徑作爲參數(「C:\ Windows \ system32 \ cmd.exe」)。任何想法爲什麼它不適用於[當前] [此人](https://stackoverflow.com/questions/10363918/qt-cant-launch-windows-console-with-qprocess)? – t020608

+0

@ t020608如果您是在64位,U可以嘗試 「C:\ WINDOWS \ Syswow64資料\ cmd.exe的」 ......檢查https://stackoverflow.com/questions/39732079/qt5-calling-bat-file-與-qprocessstartdetached-犯規找到的程序功能於SYST – HazemGomaa

0

看來我誤解了,當你啓動命令行會發生什麼。我期待打開python命令行或命令提示符窗口。

事實證明,如果我只是把我的命令,參數啓動()像這樣:

myProcess->start("cmd.exe /C python C:\\Users\\SP4\\Desktop\\helloworld.py"); 

命令提示符下運行我的Python腳本,我用得到輸出(「Hello World」的):

QString output = myProcess->readAllStandardOutput(); 

所有這一切都發生在後臺,你不能真正看到一個命令行窗口中打開並打印出「你好,世界」。

請糾正我,如果我誤解的東西。