#python #bash #conda #qprocess
#python #bash #conda #qprocess
Вопрос:
У меня есть следующий скрипт bash:
script.sh
#!/bin/bash
echo "Ann"
echo "Kasia"
source /home/user/anaconda3/etc/profile.d/conda.sh
conda activate my_environment
conda list
Я хочу запустить его с помощью QtCore.QProcess. Я протестировал следующие конфигурации, к сожалению, ни одна из них не напечатала результаты.
main.py
from PyQt5 import QtCore
process = QtCore.QProcess()
process.start("/bin/bash", ["-i", "-c", "script.sh"])
from PyQt5 import QtCore
process = QtCore.QProcess()
process.start("script.sh")
Вывод: «Процесс завершен с кодом выхода 0»
Я ожидаю, что это будет что-то вроде:
Ann
Kasia
wcwidth 0.2.5 py_0
webencodings 0.5.1 py38_1
werkzeug 1.0.1 py_0
wheel 0.35.1 py_0
widgetsnbextension 3.5.1 py38_0
Комментарии:
1. Я хочу признать, что когда я открываю терминал и печатаю
./script.sh
, он работает нормально и выводит вывод
Ответ №1:
QProcess.start()
запускает процесс асинхронно. Это означает, что вы, вероятно, хотите вызвать waitForStarted()
и / или waitForFinished()
убедиться, что он завершен, прежде чем продолжить.