Бесконечный цикл при преобразовании django в exe-файл

Я хочу выполнить команду " runserver" и "run_file_watcher", которая является пользовательской командой, одновременно, каждую в отдельном потоке, это работает нормально, но при преобразовании в exe-файл с помощью Pyinstaller он уходит в бесконечный цикл

это код для многопоточности



# run_both.py
import os
from threading import Thread
import subprocess
import sys
import django

# Set Django settings module explicitly
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
django.setup()

def run_django_server():
    print("Starting Django server...")
    subprocess.run([sys.executable, 'manage.py', 'runserver'])
    print("Django server finished.")

def run_custom_command():
    print("Running custom command...")
    subprocess.run([sys.executable, 'manage.py', 'run_file_watcher'])
    print("Custom command finished.")

if __name__ == "__main__":
    # Create threads
    thread1 = Thread(target=run_django_server)
    thread2 = Thread(target=run_custom_command)
    thread1.start() # returns immediately
    thread2.start() # returns immediately

Вместо использования потоков можно использовать модуль мультипроцессинга, потому что он лучше работает с pyinstaller.

Вернуться на верх