Бесконечный цикл при преобразовании 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.