2017-07-24 318 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(); 

所有这一切都发生在后台,你不能真正看到一个命令行窗口中打开并打印出“你好,世界”。

请纠正我,如果我误解的东西。

相关问题