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 :

Execution aprés l'affichage, mais pas d'exécution directe


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Par défaut Execution aprés l'affichage, mais pas d'exécution directe
    Bonjour,

    Sous Ubuntu 12.10, mon "programme" (en fin de msg) fonctionne dans le terminal, en tapant "python3.3 nomprg".
    Ceci après différentes recherches sur Internet m'indiquant la marche à suivre :
    - Ajout de "#!/usr/bin/python3.3" en première ligne
    - Exécution de "chmod u+x nomprg"
    - Modification du fichier "/etc/gnome/defaults.list" : pour le format py : "gedit.desktop" remplacé par "idle-python3.3.desktop"

    Problème : lorsque je clique sur l’icône du programme (sur le bureau Unity), une fenêtre s'affiche me proposant 4 options :
    [LIST=1]
    1. Lancer dans un terminal => le terminal s'ouvre et disparait aussitôt
    2. Afficher => Idle se lance, permettant les modifs ou l'exécution (touche F5)
    3. Lancer => aucune réaction
    4. Annule => là, aucun problème /LIST]


    Je suppose que je dois modifier un fichier système, mais je ne trouve pas.
    Merci d'avance pour votre aide

    Luc

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    #!/usr/bin/python3.3
     
    # -*- coding: utf-8 -*-
     
    ################################################################################
    #      Programme Python 3                                                          #
    #                                                                #
    #      Nombre et cumul taille des fichiers dans un répertoire défini (par dossier) #
    ################################################################################
     
    # Pour un répertoire donné, le prg liste les dossiers et sous-dossiers
    # en indiquant, pour chacun, le nombre de fichiers contenus et leurs tailles cumulées
    #
    # Un dernier affichage donne, pour le répertoire indiqué
    #          - le nombre total de fichiers
    #          - le cumul des tailles des fichiers
    #          - le nombre total de dossiers (y compris la racine si des fichiers ne sont pas dans des 
    #              dossiers)
     
     
    ################################
    #   Importation des modules
     
    import os
     
    import tkinter.filedialog
     
     
    ################################
    #   Définition locale des fonctions
     
    def choixrepertoire():                               # Sélection du répertoire
        global rep
        print ("demande rep")
        rep = tkinter.filedialog.askdirectory(initialdir="/", title='Choisissez un repertoire')
        if len(rep) > 0:
            print ("vous avez choisi le repertoire : "+(rep))
            traitementRepertoire(rep)
        return
     
     
     
    def traitementRepertoire(path):               # Traitement du répertoire
     
        repertoire = "***"                                    # Initialisation des variables
        nombrerepertoire = 0
        taillerepertoire = 0
        nombredossiers = 0
        sousRepertoire = "***"
        nombre = 0
        taille = 0 
     
        for root, dirs, files in os.walk(path):   # Boucle pour parcourir l'arborescence
            if sousRepertoire != root :                          # Changement de dossier
                if sousRepertoire !="***":
                    nombredossiers = nombredossiers + 1
                    print ("    ***** Pour le dossier "+(sousRepertoire)+" Nombre "+str(nombre)+"  taille : "+str(taille))
                print (" ")
                sousRepertoire = root
                nombre = 0
                taille = 0
     
     
     
            for i in files:                                           # Traitement des fichiers
                nombre = nombre + 1
                taillefichier = os.path.getsize(os.path.join(root, i))
                taille = taille + taillefichier
                taillerepertoire = taillerepertoire + taillefichier
                nombrerepertoire = nombrerepertoire + 1
     
        nombredossiers = nombredossiers + 1                                    # Fin, donc édition des derniers éléments
        print ("    ***** Pour le dossier : "+(sousRepertoire)+"  nombre : "+str(nombre)+"   taille : "+str(taille))
     
        print (" ")	
        print ("======= Pour le répertoire "+(path))
        print ("                                     Nombre       : "+str(nombrerepertoire))
        print ("                                     Taille      : "+str(taillerepertoire))
        print ("                                     Nb dossiers : "+str(nombredossiers))
        print (" ")	
        print ("TERMINE ******")
        return
     
     
     
    ################################
    #  Corps principal du programme
     
     
    fen1 = tkinter.Tk()
    tex1 = tkinter.Label(fen1, text='Répertoire des sources')
    tex1.pack()
     
    rep =''
    btnchoixrep = tkinter.Button(fen1, text='Choississez le répertoire SVP', command = choixrepertoire)
    btnchoixrep.pack()
     
    btnquitter = tkinter.Button(fen1, text='Quitter', command = fen1.destroy)
    btnquitter.pack()
    fen1.mainloop()

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Salut,
    Côté Python, çà fonctionne.

    Après la question est peut être "comment ajouter un raccourci sur le desktop pour que le programme se lance lorsqu'on 'clicke' dessus".
    Par défaut, le desktop d'Ubuntu est "Gnome".
    Comment configurer "Gnome" pour lancer çà ou autre chose?
    Peut être une piste ici?
    A défaut, il faut espérer qu'un des visiteurs connaîtra suffisamment "Gnome" (si c'est ce desktop là) pour répondre. Mais il serait peut être "judicieux" d'aller voir dans le forum Linux/... qui va bien.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    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
    Bonjour,

    Si tu as rendu ce fichier exécutable, lors d'un double-clic il t'est proposé de le lancer (dans une console, mais c'est sans intérêt) ou bien de l'afficher.

    Nul n'était besoin de modifier le fichier "/etc/gnome/defaults.list", soit dit en passant.

    Si tu choisis de le lancer et que le programme a un soucis, la console se fermera aussitôt, sans que tu n'aies le temps de voir le très certain message d'erreur. Voilà pourquoi je dis que c'est sans intérêt.

    Tout ceci pour dire que je préconise d'ouvrir d'abord un terminal dans le dossier en question [1] et de lancer le script à partir de là. Ce qui rend inutile, par la même occasion, de rendre le fichier exécutable, chose qui s'avère à l'usage aussi inutile qu'agaçante.

    [1] script ouvrir_un_terminal_ici

  4. #4
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Par défaut
    Bonsoir wiztricks, bonsoir VinsS,

    Je vous remercie pour vos réponses. Les deux liens donnés vont me permettre de progresser en Linux et en Python.

    Encore mille mercis

    Luc

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

Discussions similaires

  1. XSL-FO Saut de page après un bloc mais pas en dernière page
    Par bubulemaster dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 04/08/2010, 21h32
  2. [C++] Compilation=OK Mais PAS d'exécution
    Par yaboki dans le forum C++
    Réponses: 5
    Dernier message: 29/11/2007, 15h46
  3. Réponses: 29
    Dernier message: 26/07/2007, 15h24
  4. Execution de script batch mais pas ds un .bat :
    Par Billy GunZ dans le forum C
    Réponses: 7
    Dernier message: 26/09/2006, 18h03
  5. Applet qui s'execute dans un dossier mais pas dans l'autre
    Par Battosaiii dans le forum Applets
    Réponses: 11
    Dernier message: 10/12/2005, 15h54

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