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

Python Discussion :

Thread Python qui ne rend pas la main


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 82
    Par défaut Thread Python qui ne rend pas la main
    Bonjour, je souhaite faire un Thread Python pour lancer un programme en arrière plan et avoir tout de suite après la main.

    Je fais donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import threading
    import os
    commande = "C:\Programmes\Python25\python.exe D:\test.py 2008 03 01 00 00 01 2008 03 02 23 59 59"
    a = threading.Thread(None, os.popen, None, (commande,), {})
    a.start()
    print "Test"
    Dans lequel test.py est un programme qui marche très bien et qui est très long à s'executer.

    Mais quand jexuste ce code, Python ne me rend pas la main (sablier sous Python Win, bloqué en ligne de commande, bloqué en Apache/Mod_Python).

    (Mon but final est en fait de pouvoir lancer des programmes python depuis un site Intranet, sans avoir à attendre leur fin d'execution).

    Quelqu'un a une idée de pourquoi Python ne me rend pas la main (le thread ne marche pas)?

    Merci!

    Daz

  2. #2
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Par défaut
    Plusieurs remarques.

    1/ As tu pensé à doubler les back slash dans command ?
    2/ Pourquoi, au lieu d'utiliser popen, ne pas importer directement le contenu de test.py dans le programme courant (avec import) ?

    3/ Pour les threads personnellement je préféré créer de nouvelles classes, genre comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class TestThread(threading.Thread):
      def run(self):
        import test
        test.mafunction(2008, 03, 01, 00, 00, 01, 2008, 03, 02, 23, 59, 59)
     
    testThread = TestThread()
    testThread.start()

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 82
    Par défaut
    Oui, en effet utiliser import est mieux (je n'utilise plus le passage par le Dos).

    Par contre, mon Thread ne me rend pas la main quand je le lance, même en utilisant ta méthode... Pourquoi? Quels sont les paramètres à mettre pour que le thread rende toujours la main?

Discussions similaires

  1. Exec : application qui ne rend pas la main
    Par Wilburdiskedur dans le forum Langage
    Réponses: 7
    Dernier message: 28/09/2011, 14h56
  2. Requete qui ne rend pas la main sous TOAD
    Par Lolitaaa dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/07/2010, 13h24
  3. Fonction php qui ne rend pas la main dans le SHELL
    Par diabli73 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 20/10/2008, 19h45
  4. [Batch] make qui ne rend pas la main au batch
    Par Pierre.g dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 09/07/2008, 19h04
  5. Script CMD qui ne rend pas la main
    Par ipeteivince dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 10/06/2005, 11h00

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