почему bash go в рабочий каталог из QProcess, но команда другого приложения не найдена? - PullRequest
0 голосов
/ 23 апреля 2020

Мне нужно, чтобы после открытия терминала через QProcess в нем открывался рабочий каталог / home / user / ap и выполнялась команда ls, а терминал оставался открытым. Я использую этот код. Мне нужно запустить команду из другого приложения вместо ls. Эта команда может быть выполнена строго в этом каталоге. Но после выполнения этого кода с помощью команды приложения открывается терминал, и в нем отображается сообщение о том, что эта команда не найдена (после этого я могу выполнить ее вручную в этом терминале). Так что переход в рабочий каталог произошел, но команда bash почему-то не распознала. В чем может быть проблема, как ее решить?

from PyQt5.QtCore import QProcess
pr = QProcess()
pr.startDetached("gnome-terminal", ["-e", "bash -c 'ls ; exec bash'"], "/home/user/ap")
pr.waitForFinished()
out = pr.readAll()
pr.close()
print(str(out))

И почему сообщение отображается на консоли после выполнения программы: QIODevice::read (QProcess): device not open?

Обновление:

Что я хочу:

enter image description here

Что я получаю:

enter image description here

...