J'ai créé un ensemble dans TextMate pour redémarrer le processus Superviseur associé au projet Django actuel. L'exécution du code dans l'interpréteur Python redémarre avec succès le processus sans blocage, mais lorsque je l'utilise comme un ensemble TextMate (configuré pour s'exécuter à chaque fois que j'enregistre un fichier .py), il bloque l'interface graphique pendant ~ 3 secondes. Est-ce que je peux éviter cela?Groupe TextMate Python non bloquant
Voici ce que le code ressemble à:
#!/usr/bin/env python
import os
import subprocess
import threading
projname = os.environ.get('TM_PROJECT_DIRECTORY', '').rpartition('/')[2]
def restart_proj(projname=None):
""" Restart a supervisor instance.
Assumes that the name of the supervisor instance is the basename for
TM_PROJECT_DIRECTORY.
"""
if projname:
subprocess.Popen('$HOME/.virtualenvs/supervisor/bin/' \
'supervisorctl restart {0}'.format(projname),
shell=True, stdout=open('/dev/null', 'w'))
t = threading.Thread(target=restart_proj, args=(projname,))
t.start()
Je n'utilise plus ce paquet. Mais votre évaluation semble raisonnable! – jmagnusson