Не удается получить файл Python для параллельного запуска 2 других файлов Python - PullRequest
0 голосов
/ 05 октября 2019

Итак, я пытался часами .. ДНЯ, чтобы выяснить код для запуска 2-х файлов python.

Я пробовал подпроцессы, многопроцессорность, bash и еще много чего, я должен что-то делать не так, япросто не знаю что.

У меня есть 2 файла Python, и я хочу запустить их параллельно, но учтите, что ни один из них не заканчивается. Я хочу, чтобы первый файл был открыт и запущен, чтобы запустить второй файл.

Все, что я пробовал, открывает только первый файл и останавливается там, поскольку предполагается, что скрипт там работает 24/7. Обратите внимание, что когда я пытался использовать отдельный файл bash, он по какой-то причине открывался в git, а затем закрывался, ничего не делая. В этот момент я действительно в отчаянии ngl

Пожалуйста, предоставьте подробные ответы с кодом, так как я сканировал весь интернет (включая StackOverflow), я перепробовал все, и, похоже, ничего не работает ..

import subprocess
import LemonBot_General
import LemonBot_Time
import multiprocessing

def worker(file):
  subprocess.Popen(["python3 LemonBot_Time.py"], stdout=subprocess.PIPE)
  subprocess.Popen(["python3 LemonBot_General.py"],stdout=subprocess.PIPE)

if __name__ == '__main__':
    files = ["LemonBot_General.py","LemonBot_Time.py"]
    for i in files:
        p = multiprocessing.Process(target=worker, args=(i,))
        p.start()

Это последняя версия, которую я пробовал и не работал .. Я также попробовал одни команды подпроцесса, которые также не работали. Файл Bash также не работает.

РЕДАКТИРОВАТЬ: НИ ОДИН из файлов FINISH. Я хочу запустить их параллельно.

Ответы [ 2 ]

0 голосов
/ 05 октября 2019

Вы должны иметь возможность использовать Popen из подпроцесса. Работал на меня. Если вы удалите строку p.wait(), второй файл закроется, как только этот первый файл завершится.

import time
import subprocess

p = subprocess.Popen(['python', 'test_file.py'])

time.sleep(5)
print("Working well")

p.wait() 
0 голосов
/ 05 октября 2019

Используйте команду os.system ('python3 myprogram.py') внутри команды threading.thread () для каждого файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...