IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PyQt Python Discussion :

Lancer script python en fonction d'un processus


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Compositing / Pipeline
    Inscrit en
    Novembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Compositing / Pipeline
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2011
    Messages : 63
    Par défaut Lancer script python en fonction d'un processus
    Bonjour,

    Tout est dans le titre.
    J'ai trouvé dans un autre post comment vérifier si un processus existe et le lancer s'il n'existe pas.
    Dans le doc de psutil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    def runFusion(self):
            #Avant de lancer Fusion.exe, vérifier s'il n'est pas déjà lancé.
            exists = False
            for p in psutil.process_iter():
                try:
                    pi = p.as_dict(attrs=['pid', 'name'])
                except:
                    pass
     
                else:
                    if pi['name'] == "Fusion.exe":
                        exists = True
                        print u"\nFusion.exe est déjà lancé !".encode(sys.stdout.encoding)#print avec accents 
                        break
            if not exists:
                os.startfile(fusionRunPath)
    J'aimerai intégrer ça, dans cette methode.
    QProcess serait la Class à utiliser, pour cette opération ?
    J'ai vu dans QProcess.ProcessState trois différent états:
    QProcess.NotRunning 0 The process is not running.
    QProcess.Starting 1 The process is starting, but the program has not yet been invoked.
    QProcess.Running 2 The process is running and is ready for reading and writing.
    Fin voila, j'aimerai savoir comment mettre ça en place...
    De manière à; si le processus "Fusion.exe" n’éxiste pas, le reste du script.py démarre avec 20 sec de retard (le temps que "Fusion.exe" démarre).
    Ou alors il faudrait deux fichiers ? bref tant de questions...

    merci,

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Citation Envoyé par Miaz3 Voir le message
    De manière à; si le processus "Fusion.exe" n’éxiste pas, le reste du script.py démarre avec 20 sec de retard (le temps que "Fusion.exe" démarre).
    Au démarrage du script la fonction runFusion est appelée. Si le process n'existe pas elle le démarrez via os.startfile(fusionRunPath) et attends 20 s. avant de se terminer.
    Pourquoi utiliser QProcess pour faire çà?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    Compositing / Pipeline
    Inscrit en
    Novembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Compositing / Pipeline
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2011
    Messages : 63
    Par défaut
    Au démarrage du script la fonction runFusion est appelée. Si le process n'existe pas elle le démarrez via os.startfile(fusionRunPath) et attends 20 s. avant de se terminer.
    Avec time.sleep() ? comment mettre en pause entre deux fonctions appelées ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class MyApp(QtGui.QMainWindow, Ui_MainWindow):
        def __init__(self):
            QtGui.QMainWindow.__init__(self)
            Ui_MainWindow.__init__(self)
            self.process = QtCore.QProcess(self)
            self.runFusion()
            # time.sleep()  ICI ?
            self.fusion = PeyeonScript.scriptapp("Fusion")   #Ces fonctions ont besoins que
            self.comp = self.fusion.GetCurrentComp()         #Fusion.exe soit démarré pour
            self.comp_prefs = self.comp.GetPrefs()['Comp'] #pouvoir fonctionner sinon ça me retourne des erreurs.
            self.setupUi(self)
    Voila pourquoi je ne l'avais pas retenue cet idée, c'est que si fusion.exe est déjà lancé je doit attendre 20sec quand même.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par Miaz3 Voir le message
    Avec time.sleep() ? comment mettre en pause entre deux fonctions appelées ?
    ...
    Voila pourquoi je ne l'avais pas retenue cet idée, c'est que si fusion.exe est déjà lancé je doit attendre 20sec quand même.
    C'est la raison pour laquelle je vous suggérais de mettre cela dans la fonction après .startfile.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre confirmé
    Homme Profil pro
    Compositing / Pipeline
    Inscrit en
    Novembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Compositing / Pipeline
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2011
    Messages : 63
    Par défaut Yeah !
    Oui, oui tout à fait ! entre temps j'avais rajouté une fonction sans instance...forcement ça bloquait

    Merci encore wiztricks !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lancer Script Python par la commande SCHTASKS
    Par wilwilwilwil dans le forum Général Python
    Réponses: 5
    Dernier message: 29/08/2013, 11h05
  2. Lancer script python dans fenêtre C++
    Par quake3 dans le forum Débuter
    Réponses: 2
    Dernier message: 09/05/2012, 19h00
  3. Appel de fonction/script python via PHP
    Par rastalien dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 21/02/2008, 18h12
  4. [Système] Lancer un script python en PHP
    Par gannher dans le forum Langage
    Réponses: 10
    Dernier message: 13/09/2007, 11h24
  5. lancer un .bat depuis un script python
    Par manu.c dans le forum Général Python
    Réponses: 9
    Dernier message: 02/05/2006, 14h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo