如何解决如何调试 QProcess 脚本以查找行错误来自?
我有一小段代码可以从 Qt c++ 执行 python 脚本。我该如何调试?下面我知道问题是“import nltk”,但我怎么能在一个完整的项目中理解这一点。我在 Spyder 中运行了 python 代码,甚至我在 Qt 和 Spyder 中都设置了相同的 python 解释器路径,但在 Spyder 中它运行正确并且创建了 tmp.json 文件,而在 Qt 中未创建 tmp.json 文件。
main.cpp
#include "mainwindow.h"
#include <QApplication>
#include <QDebug>
#include <QProcess>
int main(int argc,char *argv[])
{
QProcess p;
QStringList params;
params << "F:/NLP/google_corpus/scrape_python/qt/cpy2/someFunction.py";
p.start("C:/Users/A/anaconda3/python.exe",params);
qDebug() << "Hello World" << p.error();
if ( p.state() == QProcess::NotRunning ) {
return -2;
};
//p.waitForFinished(-1);
QApplication a(argc,argv);
MainWindow w;
w.show();
return a.exec();
}
someFunction.py
import json
import sys
import sys
sys.path.append('C:\\Users\\A\\anaconda3\\lib\\site-packages\\IPython\\extensions')
sys.path.append('C:\\Users\\A\\.ipython')
import nltk
#nltk.data.path.append('.')
previous_tokens = ["hey","how","are","you"]
json_object = json.dumps(previous_tokens)
with open('F:\\NLP\\google_corpus\\scrape_python\\qt\\cpy2\\tmp.json',"w") as outfile:
outfile.write(json_object)
编辑:Qt python 和 Spyder 中的 sys 路径不同,所以我在下面添加了几行:
import sys
sys.path.append('C:\\Users\\A\\anaconda3\\lib\\site-packages\\IPython\\extensions')
sys.path.append('C:\\Users\\A\\.ipython')
但还是一样的问题。
解决方法
我将 python 解释器更改为另一条路径中的另一个解释器,尽管 spyder 解释器不同,但它仍然有效!新的:
"C:/Users/A/anaconda3/pkgs/python-3.8.3-he1778fa_2/python.exe"
我还将 nltk 库路径附加到 sys 路径。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。