Exécutable à partir d'un fichier python
Résolu/Fermé[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 12 janv. 2024 à 13:28
- Créer un exécutable python avec pycharm
- Créer un compte google - Guide
- Créer un compte gmail - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un compte instagram sur google - Guide
- Comment creer un pdf - Guide
11 réponses
11 janv. 2024 à 08:09
Salut,
Personne ne se moque, les 80 posts ne traitent pas de Python, mais de l'utilisation du terminal, de la navigation dans l'arborescence des répertoires et du nommage des fichiers.
Évite les espaces dans les noms de fichiers ou tu le précises avec les simples guillemets '' :
C:\Users\quent\PycharmProjects\pythonProject\'LES_ ENSEMBLES.py'
Autre astuce :
Ton terminal, peu importe l'OS, gère le glisser/déposer, ce qui permet à partir de ton navigateur de fichier d'obtenir le chemin absolu dans ton terminal.
19 déc. 2023 à 18:38
Bonjour Quentin
Le fichier setup.py est un fichier placé à la racine de ton projet, propre à setuptools, qui permet de générer un paquet python (.whl, .egg) et/ou linux (.rpm, .deb).
De nos jours, on le remplace de plus en plus au profit de poetry bien plus moderne, pratique et élégant (qui lui repose sur le fichier pyproject.toml).
Afin de te faire une idée sur ces différentes technologies, tu peux jeter un œil à cette page et cette page.
Je ne connais pas cx-freeze et je ne sais pas s'il impose d'utiliser setuptools. N'étant pas windowsien, je ne m'intéresse pas vraiment à la génération d'exécutable standalone, mais je sais que les gens utilisent aussi souvent pyinstaller ou py2exe. Quelques exemples d'utilisation ici. Typiquement, si ton script python n'est composé que d'un fichier, tu peux te contenter de :
pyinstaller yourfile.py -F --onefile
Bonne chance
20 déc. 2023 à 10:49
Bonjour Mamiemondo,
Merci pour ta réponse. J'ai installé dans Pycharm la commande :
pip install -U pyinstaller
Maintenant, je peux exécuter mes fichiers python en un clic depuis l'explorateur !
Modifié le 21 déc. 2023 à 15:06
C'est bizarre tout ça, on a l'impression que tu ne comprends pas tout ce qu'on te raconte : sur ton image, on voit un chemin avec py.exe. Donc tu as déjà un exe qui correspond à un fichier py.py ? C'est ça ou pas ?
D'autre part as-tu compris que, de toutes façons, tu n'as pas besoin de créer un .exe ?
Moi, je n'utilise pas Pycharm mais Idle comme IDE, mais tu créés forcément un fichier toto.py (par exemple) dans un répertoire. Et pour l'exécuter, il suffit de double-cliquer sur le fichier dans l'explorateur:
Encore une fois, une .exe, c'est utile si tu veux exécuter ton code sur un PC sur lequel n'est pas installé Python.
22 déc. 2023 à 19:09
J'ai essayé l'exécutable sur un autre pc, j'ai un message d'erreur que le chemin n'est pas le bon, pour le répertoire du programme, alors que je l'indique bien !
C:\Users\quent\PycharmProjects\pythonProject
Modifié le 22 déc. 2023 à 20:38
@ Phil : Ton fichier porte l'extension .bat ou .exe ?
26 déc. 2023 à 13:32
- Est-ce que sur ton autre PC, le chemin dont tu parles a un sens ?
- Au pire tu n'utilises pas le script de Phil et tu tapes directement la commande avec les arguments adéquats (cf #1) depuis PowerShell.
- L'avantage de PowerShell (comparé aux commandes ms-dos) fournit l'auto-complétion, c'est-à-dire que quand tu tapes une commande, la touche tabulation permet de compléter l'argument que tu es en train de taper. C'est donc un moyen efficace de taper plus rapidement / facilement et sans erreur le chemin d'un fichier.
26 déc. 2023 à 18:43
Bonjour Mamiemondo,
Le chemin à du sens oui, mais comme je n'ai pas python d'installé, ni PyCharm, je comprends que le chemin n'aboutisse pas.
J'essaierai avec PowerShell, "py installer" !
Modifié le 29 déc. 2023 à 10:14
Pourquoi as tu copié mon fichier sur l'autre PC ?
Tu n'as pas lu tout ce qu'on t'as raconté depuis le début !
Sur ton PC sur lequel tu as créé ton code Python:
un fichier Python toto.py (par exemple)
mon .bat pour lancer pyinstaller et créer un .exe dans un dossier avec
tous les autres fichiers utiles comme on le voit sur l'image que j'ai postée
le 27/12 à 12h22
Sur l'autre PC:
Tu y copie ce fameux dossier, tu l'ouvre et tu double-clique sur toto.exe
Pas plus, pas moins ...
5 janv. 2024 à 08:25
Salut,
Je conseillerais l'installation et l'utilisation de auto-py-to-exe qui utilise PyInstaller
Il propose une interface graphique basée sue Chrome, qui permet en quelques clics de générer son package exe
Je l'ai testé sur Windows, macOS et Linux sans soucis.
https://pypi.org/project/auto-py-to-exe/
Modifié le 5 janv. 2024 à 09:58
Salut Diablo,
Hou la,Hou la,Hou la !
Ne va pas compliquer encore plus que ça l'est :-) :-) :-)
Si tu as lu toute cette suite de messages, tu as du voir que ça n'est pas
simple
D'autant que Quentin a l'air d'être arrivé au bout:
En regardant l'image postée hier à 19h10, on voit les dossiers
dist, build et le fichier LES_ENSEMBLES.spec créés par pyinstaller
Donc, dans dist, il y a surement un dossier LES_ENSEMBLES qui contient
tous les fichiers utiles dont LES_ENSEMBLES.exe
Attendons sa réponse à ma question ...
5 janv. 2024 à 11:15
Bonjour Phil,
Dans le dossier dist, il n'y a rien dedans.
Modifié le 5 janv. 2024 à 12:26
Bizarre, bizarre ............
Il faudrait refaire un essai
1_ tu supprimes les dossiers build et dist et aussi le fichier LES_ENSEMBLES.spec
2_ tu ouvres l'invite de commandes Windows
3_ Tu tapes cd chemin\vers\le\dossier\du\py
4_ Tu tapes
chemin\vers\le\dossier_pyinstaller\pyinstaller LES_ENSEMBLES.py
N'oublie pas de virer la copie du .py que tu as mise dans le dossier où
est pyinstaller
Et on voit ce que ça donne ...
5 janv. 2024 à 18:54
Modifié le 5 janv. 2024 à 20:40
'C:\Users\quent\PycharmProjects\pythonProject\LES_ENSEMBLES.py' not found
ca veut dire que ton fichier .py n'est pas dans
C:\Users\quent\PycharmProjects\pythonProject
Tu avais pourtant bien dit qu'il était là-dedans ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionModifié le 20 déc. 2023 à 11:35
Bonjour,
Même sans créer d'exécutable, on peut lancer un programme en faisant un double clic sur le fichier .py dans l'explorateur ...
J'utilise pyinstaller pour passer un code à quelqu'un qui n'a pas installé l'environnement Python sur son PC, il lui faut donc un .exe puisqu'il n'a pas l'interpréteur pour exécuter directement un .py
Pour créer un exe, je me suis fait un petit fichier .bat :
echo off set /p py_dir=Repertoire du programme : cd %py_dir% set /p py_file=Nom du programme : "C:\Program Files (x86)\Python\Scripts\pyinstaller" %py_file% -p C:\Phil\Dev\Python\projects\base_lib pause
(Le répertoire à la suite de l'option -p contient des fichiers importés éventuellement dans mon code principal)
20 déc. 2023 à 11:38
À quelle ligne du code, tu choisis le chemin complet du fichier python concerné ?
Modifié le 20 déc. 2023 à 11:57
Bonjour Quentin
- Voir ici. La commande set /p permet de d'initialiser une variable de manière interactive.
- Quand tu exécutes le script de Phil_1857, il suffit de répondre aux questions ("Repertoire du programme :" et "Nom du programme :") pour initialiser respectivement les variables py_dir et py_file.
- Cependant, ce script peut nécessiter quelques corrections
- le chemin vers pyinstaller.exe, de sorte à ce qu'il soit correct par rapport à ton installation ;
- le(s) chemin(s) derrière l'option -p si ton programme dépend d'imports spécifiques -- si tu n'en as pas, tu peux juste supprimer cette option.
- Le point important, c'est de déterminer quelles options de pyinstaller.exe sont pertinentes dans ton cas. Ensuite, libre à toi d'écrire un script dans l'esprit de celui de Phil_1857 pour te simplifier la vie.
- As-tu toutes tes réponses ? Si oui, peux-tu basculer le sujet en résolu ?
Bonne chance
20 déc. 2023 à 11:51
La ligne 3 demande le répertoire du programme:
la ligne 4 fait un change directory pour s'y placer
La ligne 6 demande le nom du programme:
Et c'est parti !
20 déc. 2023 à 11:56
En gros, je peux copier-coller ton code en .bat ?
20 déc. 2023 à 12:00
As-tu lu #5 ? :-)
Modifié le 20 déc. 2023 à 12:03
oui à condition de changer le chemin vers pyinstaller comme l'indique
Mamiemando dans son dernier message
Mais j'espère que tu as bien compris que ton peux exécuter ton code
sans utiliser pyinstaller en double-cliquanr sur le .py dans l'explorateur
20 déc. 2023 à 12:28
echo off
set /p py_dir=C:\Users\quent\PycharmProjects\pythonProject\LES ENSEMBLES :
cd %py_dir%
set /p py_file=PycharmProjects :
"C:\Program Files (x86)\Python\Scripts\pyinstaller" %py_file% -p C:\Users\quent\Dev\Python\projects\base_lib
pause
20 déc. 2023 à 12:49
Il y a une confusion Quentin. Peut-être n'as tu pas bien compris le message #5. Il ne faut pas corriger les lignes set /p : ce qui est écrit derrière est le message de question posé par le script quand tu l'exécutes (c'est ce que tu vois dans les captures d'écran postées par Phil dans #6).
- Ce que tu saisis au clavier en réponse est mémorisé dans la variable. Il est donc normal qu'aucun chemin n'apparaisse.
- Ce que tu as écrit aurait sans doute du sens sans l'option /p, afin d'imposer la valeur des variables py_dir et py_file.
Ensuite, rien ne dit que dans ton cas, tu aies un dossier base_lib. Et rien ne dit que tu as réellement besoin de passer l'option -p. C'est là que Phil range sur son ordinateur certains de ses packages python qu'il aime utiliser, mais rien ne dit que ce soit ton cas. Il est fort probable que dans ton cas, tu n'aies pas besoin de l'option -p. C'est pourquoi je te renvoie à la documentation des options de pyinstaller pour bien comprendre ce quelles font.
Bonne chance
20 déc. 2023 à 14:01
echo off
set /p py_dir=Repertoire du programme :
cd %py_dir%
set /p py_file=Nom du programme :
"C:\Program Files (x86)\Python\Scripts\pyinstaller" %py_file% -p
pause
Modifié le 20 déc. 2023 à 15:14
- Parfait, le script semble maintenant correct :-) Dans la fenêtre noire que tu as reportée en capture d'écran, il ne te reste plus qu'à taper à la suite de la première question le dossier dans lequel est localisé ton fichier ".py", entrée, puis suite à la deuxième question, le nom dudit fichier ".py".
- Le truc important, c'est que ce script n'a absolument rien d'obligatoire. Phil te l'a proposé car dans son cas, il le trouve pratique, et il se dit que ce sera peut-être le cas pour toi aussi. Mais fondamentalement, la seule chose qui compte vraiment, c'est invoquer pyinstaller.exe avec les bons paramètres.
Bonne chance
20 déc. 2023 à 18:19
En fait quand je rentre le chemin du dossier où est le fichier .py, ça me répond chemin introuvable.
Le bon chemin, c'est celui-là :
Ce n'est pas le même où est installé Pycharm ! Il faut dire que ce fichier .py a été créé lors de ma première installation de Pycharm, ceci expliquant cela peut être !
Sinon pour moi, c'est plus simple, après avoir installé en cmd pyinstaller, de cliquer sur mon fichier .py qui ainsi, s'ouvre direct !
Modifié le 21 déc. 2023 à 15:04
Oui, c'est bien ça: ça évite d'écrire la commande à la main avec le chemin vers pyinstaller et le chemin vers le fichier + nom du fichier .py
Supprime quand même le -p à la fin.
Modifié le 9 janv. 2024 à 13:21
Hé ben voila: dir te donne la liste des fichiers et dossiers contenus dans
le dossier courant
(ici: C:\WINDOWS\System32 car tu tapes la commande alors que tu es dans
ce dossier)
Tu n'as plus qu'a faire cd chemin_ou_est_situé_le_code_Python
puis faire un dir
tu verras bien si dans la liste qui s'affiche on voit le fichier LES_ENSEMBLES.py
(pourquoi un nom de fichier en majuscules, d'ailleurs ?)
Modifié le 9 janv. 2024 à 17:51
Le fichier LES_ENSEMBLES.py est bien dans le dossier
En majuscule, c'est pour bien le repérer !
9 janv. 2024 à 19:34
À ce moment là il faut l'écrire comme il faut (en respectant les minuscules et les majuscules). On attend toujours que tu nous copies-colles le résultat de la commande dir (dans le répertoire adéquat) pour voir ce qui cloche. Un truc que tu peux sans doute faire, c'est utiliser power shell au lieu des commandes ms-dos. À l'image d'un terminal sous Linux, il supporte l'auto complétion, c'est-à-dire qu'en utilisant la touche "tabulation", il complète les noms de dossiers/fichiers.
Modifié le 10 janv. 2024 à 11:50
tu es un drôle de comique, toi ! ouvre les yeux
moi je vois un fichier
LES_ ENSEMBLES.py
et pas
LES_ENSEMBLES.py
et dans l'explorateur Windows, ça ne te sautait pas aux yeux ?
et dégage un peu tous ces fichiers .spec inutiles
Et prend aussi une bonne habitude:
mettre des underscores ( _ ) au lieu d'espaces dans les noms de fichiers:
creer_un_pdf.py
10 janv. 2024 à 18:28
Bonsoir.
Tout de même, comment quelqu'un ayant posté plus de 8 000 messages dans un forum informatique, donc ayant porté assistance à autrui dans ce domaine ne sait pas comment se déplacer dans une arborescence de répertoires dans une console dos, ni mettre au bon endroit de cette arborescence les fichiers nécessaires au bon fonctionnement d'un exécutable, ce qui est un peu le ba.ba de l'informatique.
:-/
Modifié le 11 janv. 2024 à 10:19
On ne se moque pas
Par contre, ce qui est certain, c'est que tu ne lis attentivement pas ce qu'on
te répond, pour essayer de comprendre ce qui se passe
Encore une fois:
Enlève moi ces foutus espaces de tes noms de fichiers !!
Renomme
LES_ ENSEMBLE.py
(il y a un espace entre LES_ et ENSEMBLES !! )
en
LES_ENSEMBLES.py
Et ça ira bien mieux
On ne voit pas trop l'intérêt de nommer un fichier
LES + underscore + espace + ENSEMBLES
Modifié le 11 janv. 2024 à 16:26
Quentin n'est visiblement pas familier de l'invite de commande.
Pour résumer et clarifier pour Quentin, dans ce post de Quentin :
On peut voir que :
cd C:\Users\quent\PycharmProjects\pythonProject
fonctionne et permet à quentin de se déplacer dans "C:\Users\quent\PycharmProjects\pythonProject".
et que :
C:\Users\quent\PycharmProjects\pythonProject4\venv\Scripts\pyinstaller LES_ENSEMBLES.py
lance effectivement pyinstaller qui doit donc bien être dans le répertoire "C:\Users\quent\PycharmProjects\pythonProject4\venv\Scripts\pyinstaller" mais que son exécution échoue avec une erreur :
1038 INFO: PyInstaller: 6.3.0
1039 INFO: Python: 3.12.0
1064 INFO: Platform: Windows-10-16.0.19645-SPe
1065 INFO: wrote C:\Users\quent\PycharmProjects\pythonProject\LES_ENSEMBLES.spec
Script 'C:\Users\quent\PycharmProjects\pythonProject\LES_ENSEMBLES.py' not found
L'exécution du programme pyinstaller échoue car le répertoire "C:\Users\quent\PycharmProjects\pythonProject\" ne contient pas un fichier "LES_ENSEMBLES.py".
En partant de l'hypothèse que "C:\Users\quent\PycharmProjects\pythonProject\" contient "LES_ ENSEMBLES.py" (avec un espace après le underscore) et non pas "LES_ ENSEMBLES.py", la séquence correcte de commandes, après avoir ouvert l'invite de commande serait :
cd C:\Users\quent\PycharmProjects\pythonProject
C:\Users\quent\PycharmProjects\pythonProject4\venv\Scripts\pyinstaller "LES_ ENSEMBLES.py"
Si quentin a renommé son fichier "LES_ ENSEMBLES.py" en "LES_ ENSEMBLES.py", sans espace, comme on le sui conseille, la séquence correcte de commandes, après avoir ouvert l'invite de commande serait :
cd C:\Users\quent\PycharmProjects\pythonProject
C:\Users\quent\PycharmProjects\pythonProject4\venv\Scripts\pyinstaller LES_ENSEMBLES.py
@quentin2121 StatutMembre
tu peux coller du texte dans l'invite de commande (clic droit - coller). Fais le pour éviter les fautes de frappe.
11 janv. 2024 à 16:24
Dans son message :
@Diablo76 StatutMembre
avait proposé l'utilisation d'une interface graphique permettant de faire fonctionner PyInstaller : auto-py-to-exe
Cela est sans doutes plus adéquat pour les personnes non familières de la ligne de commande.
11 janv. 2024 à 18:59
Merci, cela à fonctionné, ENFIN !
C'est le dossier ou il y a LES_ENSEMBLES.py qu'il faut copier pour l'exécuter sur un pc ou il n'y a pas python d'installé ?
J'ai vérifié, LES_ENSEMBLES est en .py, n'est pas devenu .exe ?
12 janv. 2024 à 12:14
regarde nos réponse plus haut
on te l'a déjà expliqué !
dans le dossier qui contient le .py, il a un dossier qui contient un autre dossier
qui contient le .exe
Relis nos réponses et tu sauras ce qu'il faut faire
Modifié le 12 janv. 2024 à 13:29
Comme il y a 87 réponses, on peut aussi consulter la doc :
https://www.pyinstaller.org/en/stable/usage.html
PyInstaller analyzes myscript.py and:
In the dist folder you find the bundled app you distribute to your users.
- Writes myscript.spec in the same folder as the script.
- Creates a folder build in the same folder as the script if it does not exist.
- Writes some log files and working files in the build folder.
- Creates a folder dist in the same folder as the script if it does not exist.
- Writes the myscript executable folder in the dist folder.