Этот вопрос, вероятно, задавали раньше по-разному, но я новичок в информатике и программировании, для которых я не уверен, что смогу гуглить, и у него все еще могут быть особые требования c.
Моя проблема заключается в запуске нескольких терминалов по отдельности в последовательном порядке и с указанными c переменными окружения для каждого, а также выполнение разных команд в каждом, которые запускают несколько асинхронных потоков, что в конечном итоге заставляет приложение работать. Эта процедура становится еще более утомительной и медленной, если я хочу запустить более одного экземпляра этого приложения одновременно.
Поэтому я хочу сделать этот процесс автоматическим c, и я не уверен, как это сделать с помощью сценария python.
До сих пор я думал, что используя Joblib У меня могут быть отдельные потоки для каждого экземпляра приложения, а с помощью os.environ я могу определить переменные среды для каждого. но как мне представить каждый из терминалов, которые у меня были раньше, когда для каждой используются разные команды и переменные среды.
import os
from joblib import Parallel, delayed
import sys
num_parallel = 5
def _run_exp(id):
# for terminal 1
os.environ["env_name"] = str(id)
terminal1("command 1")
terminal1("command 2")
# for terminal 2
os.environ["env_name"] = str(id)
terminal2("command 1")
terminal2("command 2")
Parallel(n_jobs=num_parallel)(delayed(_run_exp)(i) for i in range(num_parallel))
Использование подпроцесса и потоковой передачи также может помочь, но я пока не знаю, как использовать в моем случае их правильно.