Проблемы с командной строкой QT (system или qprocess) - PullRequest
0 голосов
/ 03 февраля 2019

Итак, у меня есть модель глубокого обучения распознаванию изображений, для которой я подготовил графический интерфейс в QT.Мне нужно запустить скрипт с ipython, который загружает модель и выводит одно число.Теперь это единственное число - то, что я хочу иметь в приложении QT.Так что без ненужной истории: я хочу запустить скрипт через 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 не был найден.

Еще одна странная вещь.Как уже было сказано, у меня есть программа на С ++, которая может делать то, что я хочу.Я попытался запустить его тем же методом, но он жаловался на то, что не нашел ipython, где, с другой стороны, упомянутая программа на С ++ работала отлично (при открытии вручную, а не через qt)

Еще одна вещь, которую ямогу думать о.Мне нужно активировать conda перед выполнением скрипта с ipython, может быть, это не активируется через qt?Но даже если я добавлю «conda activ && ....» на передний план, он скажет, что conda не найден.

...