所以我有一个图像识别深度学习模型,为此我在QT中准备了一个GUI。我需要使用ipython运行脚本,该脚本会加载模型并输出一个数字。现在,这个单一编号就是我想要在QT应用程序中使用的编号。 所以没有unnecesarry故事:我想运行通过QT脚本,并得到输出字符串(第一)
。使用带有终端的g ++,我可以运行system(),并输出我想要的数字,这样就可以正常工作,因此问题既出在我的代码上,也不出在命令本身上。
std::string valInString;
std::string str = "ipython /home/szalontaibal/Dokumentumok/DeepLearning/fastai/fastai/courses/dl1/moneyqt.py";
const char *command = str.c_str();
valInString = exec(command);
std::cout << valInString;
我也尝试过process.execute(...),process.start(...)和system(...),但它们只能运行基本命令(gedit,ls等),但不能运行ipython的。换句话说,之前显示的代码将无法在QT中使用。
有时它卡住了,有时找不到类似ipython的输出。
另一件事。如前所述,我有一个C ++程序,可以执行我想要的操作。我尝试用相同的方法运行它,但是它抱怨找不到ipython,另一方面,提到的c ++程序运行良好(当手动打开而不是通过qt打开时)
我能想到的另一件事。在使用ipython执行脚本之前,我需要激活conda,也许不是通过qt激活的? 但即使我加上“畅达激活&& ......”前面,它说畅达是找不到的。