Interface graphique avec un script Python

Fermé
Amb02 - 6 déc. 2016 à 18:24
 Amb02 - 14 déc. 2016 à 22:10
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 B
A voir également:

7 réponses

_Ritchi_ Messages postés 21210 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 20 avril 2024 6 058
6 déc. 2016 à 19:02
Bonjour,

Pourquoi ne pas compiler ton script python et ainsi livrer juste un exécutable ?

Ritchi
0
Je sais c'est surement pas très compliqué ni très évolué... mais comment compiler pour avoir, à partir d'un fichier python, un exécutable indépendant?
0
_Ritchi_ Messages postés 21210 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 20 avril 2024 6 058
9 déc. 2016 à 19:28
Bonjour,

Voici une explication:
Compiler un script Python
Regarde l'explication de sloshy datée du 17 mars 2006 à 22h25

Ritchi
0
Bonsoir,
J'ai en effet lu pas mal d'explications (d'autres plus compliquées qui ne marchaient pas avec cxfreeze py2exe ou autre)...
Le problème auquel je suis confronté avec cette solution (qui me semble cependant être la meilleure) est que, sous windows, j'utilise Pyzo comme éditeur (avec Anaconda). J'ai bien créé les fichiers setup et l'autre, mais je ne trouve pas les répertoires en question... car j'ai du mal à retrouver les différents fichier de python dans mon éditeur (C, ProgrammeFiles, Pyzo, ...?)
Pourriez-vous m'aider sur ce point?
De plus, les commentaires suivants semblent montrer que cela ne marche pas (mais ça je verrai bien par moi même)
Un grand merci pour votre aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
_Ritchi_ Messages postés 21210 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 20 avril 2024 6 058
Modifié par _Ritchi_ le 9/12/2016 à 23:31
Bonsoir,

Perso, sur mon PC de travail, je place dans le même répertoire "MonProjet" tous les fichiers .py .ini .lib .dll .ico... qui composent mon application "MonProjet.py".
Imagine que mon application "MonProjet.py" nécessite:
- le fichier "MonProjet.ini" contenant tous les paramètres de configuration de mon application
- le fichier "MonProjet.ico" icone de mon application
Imagine aussi que ma version Python est la 2.7 et elle est installée dans le répertoire c:\python27

Je crée alors le fichier "compile.bat" dans mon répertoire "MonProjet" et ce fichier contiendra ceci:

set PATH=c:\python27

echo creation du fichier temporaire compile.py:
echo from distutils.core import setup > compile.py
echo import py2exe >> compile.py
echo setup(console=['MonProjet.py']) >> compile.py
echo setup(console=[{"script":'MonProjet.py', "icon_resources": [(1, "MonProjet.ico")]}]) >> compile.py

echo compilation python:
python compile.py py2exe

echo ajout des fichiers indispensables:
copy *.ini dist\
copy *.lib dist\
copy *.dll dist\
copy *.ico dist\

echo suppression d une eventuelle version precedemment compilee:
del MonProjet
del MonProjet.zip

echo renommage du repertoire dist:
move dist MonProjet

echo suppression des fichiers temporaires:
del compile.py
del /S /Q build
pause


Ce fichier compile.bat est lancé directement par un double clic.
A la fin de son exécution, le répertoire "MonProjet/MonProjet" contient l'exécutable "MonProjet.exe" et tous les fichiers qui lui sont nécessaires comme le fichier d'initialisation "MonProjet.ini" et tous les fichiers librairies (.dll, .ico, .lib, ...)

Ritchi
0
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?
0
_Ritchi_ Messages postés 21210 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 20 avril 2024 6 058
10 déc. 2016 à 10:19
Bonjour

Voici ce que recommande py2exe quand on utilise NumPy:
Py2Exe - Working with Various Packages and Modules:

NumPy
• If you're getting No scipy-style subpackage 'xxx' found in c:\...\library.zip\numpy. Ignoring, try --skip-archive command line option or pass options = {"py2exe": {"skip_archive":1}} to setup().

• If you're using numarray and numpy together, be aware that they both have a _sort, and py2exe gets them confused. After py2exe creates the dist directotry, copy numpy/core/_sort.pyd and numarray/sort.pyd to their respective locations in the dist. [This problem is due to a bug in py2exe: it used a single, flat namespace for all .pyd files. This has been fixed in CVS as of 7 Sep 2007.]

• Numpy 1.4.0 and Py2exe 0.6.9 may have issues compiling to an executable. The executable may run on your computer, but won't run on others machines. You may get an error that says the module can't be found or a DLL load failure referencing numpy files (.pyc,.pyo). The solution to this is to use numpy 1.3.0.


Ces recommandations recouvrent-elles ton cas ?

Ritchi
0
Bonjour!
J'ai essayé de résoudre les nbeux bugs auxquels j'ai été confronté, mais il paraîtrait que py2exe ne serait pas compatible avec Python 3 :/ En effet, j'ai un script python 3 et je cherche à créer l'exécutable à partir de Python le plus rapidement possible, en cachant le source, utilisable par n'importe quel utilisateur de Windows, 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... J'ai donc essayé cxfreeze, sans succès..., il y a forcément un bug qque part...
L'année prochaine je ferai ça calmement et proprement, programmé en C... mais là le temps me presse avant les concours... 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 :)
0
_Ritchi_ Messages postés 21210 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 20 avril 2024 6 058
13 déc. 2016 à 19:17
Et Python3 est obligatoire pour ton projet ?
0
Amb02 > _Ritchi_ Messages postés 21210 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 20 avril 2024
14 déc. 2016 à 00:59
Hélas oui, car c'est le langage officiel imposé aux concours... :/
0
_Ritchi_ Messages postés 21210 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 20 avril 2024 6 058
Modifié par _Ritchi_ le 14/12/2016 à 07:11
Pourtant py2exe v0.9.2.0 est compatible python 3.3 et plus récent:
Build standalone executables for Windows (python 3 version)
0
Amb02 > _Ritchi_ Messages postés 21210 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 20 avril 2024
14 déc. 2016 à 22:10
Malheureusement je viens de réessayer en le téléchargeant à nouveau... et la version requise est la version 2.7 de Python...
0