Как запустить несколько файлов python одновременно?
Здравствуйте я хочу запустить 2 бота одновременно, но не получается
import bot_1, bot_2
from threading import Thread
Thread(target=bot_2.main).start()
Thread(target=bot_1.main).start()
Данный код запускает то файл bot_1, а bot_2 он не запускает с чем это связано?
P.S в кодах нету ошибок я их запускал отдельно и все нормально работает)
Я хочу запустить их через файл, а не через консоль запускать это так на всякий
Буду рад если поможите (
Рома, хм.. я ток сейчас заметил. Файлы то используются через import. В этом и проблема. Пока одного не загрузит как объект, дальше не идёт. А если там скрипт ещё и зациклен
Сергей Горностаев, сначала подумал, что
bot1.main , это объект property, для вызова которого не нужно использовать (). Так что сначала пришла мысль засунуть всё под лямбда-выражение, чтоб оно не вызывалось раньше необходимого времени.
Рома, ну к примеру, выделить весь код в каждом из файлов под функции.
А далее импортировать их через "from module import func", после чего вызвать в потоке
Рома, вот я и говорю. bat файл создаете, прописываете там запуск ваших ботов. При выполнении оба бота откроются подряд. Как делать bat файл - смотреть в гугле. Если хотите как-то из одного места распараллелить - учите асинхронность.
Для автора уже не актуально, но для других, кто наткнётся на вопрос
На сколько я знаю, threading это не настоящая многопоточность. Так как запускается это всё в 1 программе Python, то поток остаётся один, а процессы будут выполняться поочерёдно. Это приводит к тому что оба процесса замедляются из-за нужды делиться потоком, что, возможно, и приводит к блокировке одного процесса другим