我正在尝试使用QProcess从QT项目启动python脚本,看起来我一直收到错误
错误:
Debugging starts
Python error: "ImportError: No module named site\r\n"
Python result= ""
Debugging has finished
但是我已经把它分解成这么简单的项目了。我完全不知道为什么会这样。我在网上搜索了几个小时,发现SO的一些链接建议我设置env路径,这对两者都没有帮助。任何帮助将不胜感激。
以下是我的项目文件和规范:
pythonTest.py :这是QT项目应该调用的python文件
print('hello world')
mainwindow.cpp :我只是创建了一个新项目,这里添加的是mainwindow.cpp代码
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QProcess>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QProcess p;
QStringList params;
QString pythonPath = "C:/Python27/python.exe";
QString pythonScript = "C:/Users/Martini/Desktop/trash/pythonTest.py";
params << pythonScript;
p.start(pythonPath, params);
p.waitForFinished(-1);
QString p_stdout = p.readAll();
QString p_stderr = p.readAllStandardError();
if(!p_stderr.isEmpty())
qDebug()<<"Python error:"<<p_stderr;
qDebug()<<"Python result="<<p_stdout;
}
更新(ekhumoro解决方案)
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
env.insert("PYTHONPATH", "C:\\Python27\\Lib");
env.insert("PYTHONHOME", "C:\\Python27");
p.setProcessEnvironment(env);