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 :

Multiprocessing


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2014
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Sant�

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Par d�faut Multiprocessing
    Bonsoir
    Je suis d�butant en Python et j'essaie d'apprendre � ex�cuter des instructions en parall�le.
    En ex�cutant les instructions suivantes :

    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
    from multiprocessing import Process
    from time import sleep
     
    def work(name):
    	print('debut du travail:%s' % name)
    	for j in range(10):
    		for i in range(10):
    			sleep(0.01)
    			print '. . . .'
    		print '.'
    	print('fin du travail: %s' % name)
     
    p = Process(target=work, args=('test',))
    p.start()
    p.join()
    Je n'obtient aucun r�sultat.

    j'ajoute que je suis sous windows avec la version 2.7.8 de Python. Par ailleurs j'ai utilis� l'instruction if __name__=='__main__' sans effet

    Merci par avance pour toutes indications sur ce probl�me

  2. #2
    Expert confirm�

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : Expert Python
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Par d�faut
    Salut, bienvenue sur le forum.

    Chez moi, le code:
    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
    from multiprocessing import Process
    from time import sleep
     
    def work(name):
    	print('debut du travail:%s' % name)
    	for j in range(10):
    		for i in range(10):
    			sleep(0.01)
    			print '. . . .'
    		print '.'
    	print('fin du travail: %s' % name)
     
    if __name__ == "__main__":
    	p = Process(target=work, args=('test',))
    	p.start()
    	p.join()
    Fonctionne tr�s bien. Dans ce cas, le if __name__ est obligatoire. Pourquoi? Simplement parce que si tu ne le met pas, l'ensemble du code, se d�roule le m�me process, or cela est impossible. Le if __name__ permet de corriger cela. Le code s'execute dans un process � part qui appelle le process ou se trouve ton "work".

    Sinon, si tu d�bute en Python, laisse tomber le multiprocess. Commence d�j� par apprendre correctement les bases avant de t'attaquer � ce genre de chose, car tu risque rapidement de tomber sur des os. Enfin, je te conseillerai de bien lire les messages d'erreur, car Python est assez clair dans ceux ci.

    Dans ton cas, j'avais le message: " Attempt to start a new process before the current process has finished its bootstrapping phase.". C'est quand meme clair non? (surtout compar� � d'auter lanagage )

  3. #3
    Expert �minent
    Homme Profil pro
    Architecte technique retrait�
    Inscrit en
    Juin 2008
    Messages
    21 772
    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 772
    Par d�faut
    Salut,

    Si vous d�butez, vous n'avez peut �tre encore pas l'habitude d'�crire vos instructions dans un fichier script que vous lancez via l'interpr�teur via une commande genre "python mon_script.py".
    Hors, il n'y a que dans ce contexte l� que "if __name__=='__main__'" a de l'effet.

    D'o� la question, "comment" - dans quel contexte - sont ex�cut�es vos instructions?

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

  4. #4
    Expert confirm�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par d�faut
    Salut,

    Sous Ubuntu le code initial donne le r�sultat attendu.

    Identique pour Python 2 et Python 3 (apr�s modification des print)

    J'ai d'ailleurs �t� surpris de l'affichage en temps r�el des print, en g�n�ral dans des boucles aussi rapides un flush() est n�cessaire.

  5. #5
    Candidat au Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2014
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Sant�

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Par d�faut multiprocessing
    Merci pour vos r�ponse!

    Tout d'abord si mes codes sont �crits dans un fichier script. Quand je dis que je suis d�butant c'est que je n'ai pas d�exp�rience sur la programmation orient� objet, mais j'ai tout me m�me r�alis� des projets d�ing�nierie scientifique dessus mais j'en arriva � un moment ou mon code mets du temps � se r�aliser.

    Par ailleurs apr�s le post de mon message j'avais d�j� ajouter l'instruction "if __name__=='__main__':" sans aucun effet

  6. #6
    Expert �minent
    Homme Profil pro
    Architecte technique retrait�
    Inscrit en
    Juin 2008
    Messages
    21 772
    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 772
    Par d�faut
    Citation Envoy� par captain_bagdad Voir le message
    Par ailleurs apr�s le post de mon message j'avais d�j� ajouter l'instruction "if __name__=='__main__':" sans aucun effet
    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
    from multiprocessing import Process
    from time import sleep
     
    def work(name):
        print('debut du travail:%s' % name)
        for j in range(10):
    	for i in range(10):
    		sleep(0.01)
    		print '. . . .'
    	print '.'
        print('fin du travail: %s' % name)
     
    if __name__ == '__main__':
        p = Process(target=work, args=('test',))
        p.start()
        p.join()
    Ce code doit fonctionner et fonctionne sous windows7, Python2.7,... - lanc� � "la console" Windows (cmd.exe).

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

  7. #7
    Candidat au Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2014
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Sant�

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Par d�faut
    Petite am�lioration!

    J'ex�cutais mon programme sur un IDLE. Depuis une console j'ai le message d'erreur
    AttributeError:'module' has no attribute 'work'

  8. #8
    Expert �minent
    Homme Profil pro
    Architecte technique retrait�
    Inscrit en
    Juin 2008
    Messages
    21 772
    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 772
    Par d�faut
    Citation Envoy� par captain_bagdad Voir le message
    Petite am�lioration!

    J'ex�cutais mon programme sur un IDLE. Depuis une console j'ai le message d'erreur
    AttributeError:'module' has no attribute 'work'
    A quoi sert d'�crire un fichier script si c'est pour en retaper le contenu � la console Python?

    Vous lancez la console Windows (cmd.exe), puis vous tapez "python <nom du script>.py"

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

Discussions similaires

  1. MPTL: MultiProcessing Template Library
    Par alskaar dans le forum Langage
    R�ponses: 16
    Dernier message: 29/04/2007, 16h44
  2. Multithread ou multiprocess
    Par Classico dans le forum C#
    R�ponses: 6
    Dernier message: 21/03/2007, 23h59
  3. Langage pour contrôle multiprocessing
    Par crocodile dans le forum Langages de programmation
    R�ponses: 4
    Dernier message: 13/06/2006, 20h02
  4. lock de fichier - multiprocess
    Par hugo123 dans le forum Entr�e/Sortie
    R�ponses: 5
    Dernier message: 11/04/2006, 10h08
  5. R�ponses: 16
    Dernier message: 30/01/2004, 11h05

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