Множественное выполнение команд в терминальном стиле с разными переменными окружения в пределах python - PullRequest
0 голосов
/ 28 мая 2020

Этот вопрос, вероятно, задавали раньше по-разному, но я новичок в информатике и программировании, для которых я не уверен, что смогу гуглить, и у него все еще могут быть особые требования 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))

Использование подпроцесса и потоковой передачи также может помочь, но я пока не знаю, как использовать в моем случае их правильно.

...