QProcess Python, запуск bash-скрипта

#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() убедиться, что он завершен, прежде чем продолжить.