Interface graphique pour script Python

ambroise01

Interface graphique pour script Python

Message par ambroise01 » 06 déc. 2016 18:35

Bonjour à tous,
Alors j'ai fait un programme python, j'ai donc tout mon script qui marche bien, mais les interactions (input etc) se font dans le shell. Je voudrais, à partir de cela, faire un programme indépendant (donc une appli qu'on lance sans que l'on puisse voir le script, seulement l'interface graphique). J'ai donc 2 questions:
1/ J'ai cherché comment faire une interface graphique, mais je n'ai trouvé que Tkinter (dans ce cas, ce n'est pas un programme indépendant, comme je cherche à faire. Je cherche à créer seulement un fichier exécutable) ou bien des logiciels (Pygame etc), mais dans ce cas je ne peux pas insérer mon script... et cela prend du tps de tout refaire...
2/ Comment créer un fichier exécutable, qui exécute le script Python dans une fenêtre, sans que l'on puisse voir le script source?
Voilà... pour être franc j'ai assez peu de temps à cause de mes études et je n'ai pas le temps de me lancer dans l'apprentissage d'un langage de programmation, je voulais juste savoir comment facilement on met ce qu'il y a dans le shell dans une fenêtre à part, créer un fichier qui lance le script sans que celui-ci soit visible.
Merci bcp de vos réponses! ;)
Bonne soirée,
Ambroise

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Interface graphique pour script Python

Message par fakbill » 07 déc. 2016 20:16

???
Si c'est du python, ce ne sera jamais compilé.
Sous linux, tu crées ton script python, au début du mets #!/usr/bin/env python3 pour dire au système de le lancer avec python3 et tu rends le script executable avec un chmod +x.
Une fois que tu auras fait ça, ça lancera ton script (et donc ta GUI) quand tu cliqueras sur l'icone du script.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

ambroise01

Re: Interface graphique pour script Python

Message par ambroise01 » 09 déc. 2016 20:55

En effet...
Mais il doit exister des moyens de compiler J'ai entendu parler de Py2exe ou encore qqes autres, mais tout ce que j'ai pu trouver sur Internet ne fonctionne pas correctement. Pour ma part, je suis sous Windows et j'utilise l'éditeur Pyzo.
Je voulais donc savoir si quelqu'un a une astuce pas trop compliquée (qui marche :!: ) pour compiler un python et ainsi créer un exécutable...
Merci beaucoup et bonne soirée ;)

Messages : 2471

Inscription : 27 juil. 2016 19:38

Profil de l'utilisateur : Élève de lycée

Re: Interface graphique pour script Python

Message par U46406 » 09 déc. 2016 21:03

« compiler », entre guillemets...
https://fr.wikipedia.org/wiki/Python_(l ... ompilation
« Occupez-vous d’abord des choses qui sont à portée de main. Rangez votre chambre avant de sauver le monde. Ensuite, sauvez le monde. » (Ron Padgett, dans Comment devenir parfait) :mrgreen:

ambroise01

Re: Interface graphique pour script Python

Message par ambroise01 » 09 déc. 2016 21:08

En effet, j'ai pensé aux outils cités. (pour ce qui est des classes etc, ce sont des objets que j'avoue ne pas maîtriser...)
Mais justement je ne me retrouve pas dans l'utilisation de ces outils, et je voulais savoir lesquels vous utilisiez, pour savoir comment faire qqes trucs qui justement me boquaient...

ambroise01

Re: Interface graphique pour script Python

Message par ambroise01 » 10 déc. 2016 06:56

Merci beaucoup de la réponse!
J'ai (enfin) réussi à créer mon fichier exe. Cela marche très bien pour des programmes simples. J'ai donc essayé de l'appliquer pour le programme pour lequel je fais tout ça et...cela ne marche pas car visiblement le module numpy n'est pas connu! Pourtant j'utilise python 3.5, enfin je ne vois pas comment faire renter le module dans la librairie... y a t il un endroit où on pourrai copier numpy et le coller dans la librairie et essayer de l'insérer dans les fichier dont a besoin l'exécutable?

Messages : 2471

Inscription : 27 juil. 2016 19:38

Profil de l'utilisateur : Élève de lycée

Re: Interface graphique pour script Python

Message par U46406 » 10 déc. 2016 19:32

Que dit le manuel de documentation - qui va avec l'utilitaire en question que tu utilises pour créer un fichier exe ?
« Occupez-vous d’abord des choses qui sont à portée de main. Rangez votre chambre avant de sauver le monde. Ensuite, sauvez le monde. » (Ron Padgett, dans Comment devenir parfait) :mrgreen:

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Interface graphique pour script Python

Message par fakbill » 11 déc. 2016 14:09

Tu fais des choses contre nature.
Normalement, tu as un OS sur lequel python et toutes les lib python nécessaires sont installées.
Ensuite tu écris des scripts et tu les lances.

Il n'existe pas de compilateur python (il existe pypy qui est un JIT compiler mais c'est autre chose).
Pourquoi? Principalement parce que python est un langage on ne peut plus dynamique.
Tu peux changer tout, tout le temps et ce sur n'importe quel objet en python au runtime...donc ça passe mal à la compilation qui produit un code assembleur statique. On peut compiler du python en gros en prenant en compte tous les cas...mais ce ne sera pas plus rapide que la version interprétée (en gros) donc ça n'a grand intérêt.

On *peut* (il existe des outils pour le faire) faire des packages avec le source, un interpréteur python et toutes les lib qui vont bien. Cependant, ça donne vite qqch d'énorme. Regarde comment est faire Sage par exemple. Ils se retrouve avec un *gros* package avec tout python et des tonnes de libs dans un seul et même soft packagé. Rien que "python", c'est déjà des tonnes de libs (ps : numpy c'est du C et du fortran appelé par du python).

Bref, si tu veux cacher le source tu peux, ça existe. il y a des outils pour le rendre illisible.
Sinon, la bonne façon de déployer un programme python sur un OS, c'est de faire un installeur qui installe les lib qui vont bien (et python lui même) sur le système (ça peut se faire en local si on veut).
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

ambroise01

Re: Interface graphique pour script Python

Message par ambroise01 » 13 déc. 2016 13:56

Oui je comprends bien j'ai essayé d'étudier un peu la question...
J'ai compris le fond de la question, mais en l’occurrence je n'ai plus beaucoup de temps, et j'ai un script python que je souhaite transformer en .exe pour pouvoir être utilisé par n'importe quel utilisateur de Windows... quitte à ce que le fichier soit très lourd non optimisé, comportant des libs inutile, je reprogrammerai ça en C quand j'aurai le temps, sans avoir le stress des concours pour que cela marche avant!
Donc, au détriment de l'optimisation (poids des fichiers ou autre...) je cherche à créer l'exécutable à partir de Python le plus rapidement possible, en cachant le source, mais à chaque fois j'ai des messages d'erreur, que cela soit dû à des erreurs de bibliothèque (erreur que je parviens pas à résoudre) ou autre... Et à chaque fois que j'utilise cxfreeze (j'ai entendu dire que py2exe ne marchait pas avec python3...?) il y a forcément un bug qque part comme ceux que j'ai cité plus haut...
L'année prochaine je ferai ça calmement et proprement... mais là le temps me presse... Du coup je suis un peu perdu (dans tout ce temps perdu justement :D) entre quoi utiliser, quoi faire, comment résoudre tous ces bugs, les outils chronophages ou autre... :/
En tout cas un immense merci pour votre aide :)

Messages : 2471

Inscription : 27 juil. 2016 19:38

Profil de l'utilisateur : Élève de lycée

Re: Interface graphique pour script Python

Message par U46406 » 13 déc. 2016 14:13

fakbill semble avoir voulu dire qu'il existe des outils adéquats. Mais peut-être qu'il souhaite que ce soit toi qui te renseigne toi-même sur les dits outils (vu qu'il n'a pas donné de piste de noms vers des sites à télécharger ou commander)

(Tu veux cacher le code pour que le "client" ne le revende pas à son compte ? ou pour qu'un prof ne le relise pas ???)
« Occupez-vous d’abord des choses qui sont à portée de main. Rangez votre chambre avant de sauver le monde. Ensuite, sauvez le monde. » (Ron Padgett, dans Comment devenir parfait) :mrgreen:

Répondre