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 :

lancement de modules


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2017
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Août 2017
    Messages : 141
    Par défaut lancement de modules
    Bonjour,

    Le code ci-dessous lance une ou l'autre application qui sont dans le même répertoire que ce code, <1_Gestion_Codes.pyw> ou <10_ChgFichiers.pyw>
    Mon problème est que je ne peut en lancer qu'un, pas les 2 à la suite, si quelqu'un pouvait m'aider ?

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    #   Imports
    from tkinter import *
    import os.path
    import subprocess
    from subprocess import call
    """ ******************************
        DOCSTRING
        Barre de lancement des modules
        ******************************
    """
    #   ____________________________________________________________________________________________________________________
    #   ____________________________________________________________________________________________________________________
    # Création de l'instance Tk
    fen0 =Tk()
    #   ____________________________________________________________________________________________________________________
    #   Les constantes
    NOMDOS = os.getcwd()                                    #   Nom du dossier courant
    #   ____________________________________________________________________________________________________________________
    #   Les variables
    varCoulPrinc = "Slate Gray"
    varCoulSecond = "Gainsboro"
    #   ____________________________________________________________________________________________________________________
    #   Les fonctions
    def foncLancCode():
        call("python 1_Gestion_Codes.pyw")
     
    def foncLancFic():
        call("python 10_ChgFichiers.pyw")
    #   ____________________________________________________________________________________________________________________
    #   ____________________________________________________________________________________________________________________
    #  MAIN : Lancement du programme Principal
    #   ____________________________________________________________________________________________________________________
    #   Création fenêtre principale
    fen0.geometry('300x200')
    fen0.title("Fenêtre principale : lancement des modules")
    fen0.configure(bg = varCoulPrinc)
    #   _______________________________________
    #   Création labels
    lab01 = Label(fen0, text = "Gestion des codes",width=26, anchor ='w', bg=varCoulPrinc)
    lab02 = Label(fen0, text = "Modification de fichiers",width=26 , anchor ='w', bg=varCoulPrinc)
    #   _______________________________________
    #   Création boutons internes
    bouLancCode =Button(fen0, bg=varCoulPrinc, command=foncLancCode)
    bouLancChgFic =Button(fen0, bg=varCoulPrinc, command=foncLancFic)
    #   Création boutons externe
    butExit =Button(fen0, relief='raised', bg = varCoulPrinc, command=fen0.destroy)
    #   _______________________________________
    #   positionnement objets
    bouLancCode.grid(row=1, column=1, pady = 5, padx = 5)
    lab01.grid(row=1, column=2, pady = 5, padx = 5)
    bouLancChgFic.grid(row=2, column=1, pady = 5, padx = 5)
    lab02.grid(row=2, column=2, pady = 5, padx = 5)
    #   ______________________
    butExit.grid(row=10, column=2, padx = 70, pady = 20)
    centreFenetre(fen0)
    #   _______________________________________
    #   Réception d'événements
    fen0.mainloop()

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

    Citation Envoyé par Ragus1970 Voir le message
    Mon problème est que je ne peut en lancer qu'un, pas les 2 à la suite, si quelqu'un pouvait m'aider ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #   Les fonctions
    def foncLancCode():
        call("python 1_Gestion_Codes.pyw")
     
    def foncLancFic():
        call("python 10_ChgFichiers.pyw")
    "call" attend que le processus qui a été lancé se termine.... Et donc premier problème votre interface utilisateur se gèle en attendant. Dans le module subprocess, vous avez la possibilité d'effectuer un appel asynchrone avec Popen. Dans ce cas, l'interface utilisateur pourra faire autre chose.

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

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2017
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Août 2017
    Messages : 141
    Par défaut
    Merci Wiztricks,

    Je viens de fouiller un peu, ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #   Les fonctions
    def foncLancCode():
        call("python 1_Gestion_Codes.pyw")
     
    def foncLancFic():
        call("python 10_ChgFichiers.pyw")
    remplacés par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #   Les fonctions
    def foncLancCode():
        pipe = Popen ("python 1_Gestion_Codes.pyw", stdout=PIPE)
     
    def foncLancFic():
        pipe = Popen("python 10_ChgFichiers.pyw", stdout=PIPE)

    Par contre je n'ai pas bien compris, tu vois quelque chose qui te choque dans le code ou c'est OK pour toi ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par Ragus1970 Voir le message
    Par contre je n'ai pas bien compris, tu vois quelque chose qui te choque dans le code ou c'est OK pour toi ?
    Si je devais mettre ma casquette de reviewer de code, il y aurait plein de choses "choquantes".
    Mais comme vous débuter, je ne veux pas vous décourager ou vous gâcher la joie d'avoir fait un truc qui marche.
    Dans quelques mois, vous aurez appris des tas de choses et si vous retombez sur ce code là, vous y trouverez aussi plein de choses choquantes.

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

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2017
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Août 2017
    Messages : 141
    Par défaut
    Merci, du moment que ça fonctionne !

    Bonne journée

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

Discussions similaires

  1. [XL-2010] Lancement de modules en fonction d'une variable
    Par Dharkki dans le forum Excel
    Réponses: 8
    Dernier message: 10/06/2017, 13h21
  2. Réponses: 18
    Dernier message: 04/07/2012, 18h58
  3. Réponses: 1
    Dernier message: 09/02/2011, 19h33
  4. Lancement d'un module de façon automatique par macro
    Par zouloute dans le forum VBA Access
    Réponses: 1
    Dernier message: 20/09/2007, 19h23
  5. [Module Web] lancement d une jsp au lieu d un html
    Par Kpone dans le forum JBuilder
    Réponses: 5
    Dernier message: 01/04/2006, 13h09

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