Je dispose d'un fichier s'appelant "salut.py" avec lequel j'aimerai générer un exécutable à l'aide cx_Freeze et dont le chemin absolu est "C:\Autres logiciels\Python\Scripts" avec le contenu suivant :
-*-coding:Latin-1 -*
"""Ce fichier affiche simplement une ligne grâce à la fonction print."""
import os
print("Salut le monde !")
# Sous Windows il faut mettre ce programme en pause (inutile sous Linux)
os.system("pause")
le contenu dans mon dossier Scripts est le suivant :
Apparemment je suis censé obtenir un dossier à l'intérieur duquel se trouve un exécutable que l'on peut exécuter lorsque je fais la commande "cxfreeze salut.py" après m'être placé dans le même dossier ou se trouve le fichier "salut.py" dans l'invite de commande, mais à la place de cela, j'ai visiblement un message d'erreur qui s'affiche évoquant un problème de syntaxe :
voici un lien pour une meilleure vue : https://goopics.net/i/g68ut5
Quelqu'un saurait-il la manière de solutionner ce problème de syntaxe ?
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Quelqu'un saurait-il la manière de solutionner ce problème de syntaxe ?
On met au point son script avant de vouoloir le packager avec cx_freeze.... et si on ne sait pas mettre au point un script de 3 lignes, ouvrir un tuto pour apprendre les bases est recommandé.
Après avoir corrigé la première ligne en ajoutant un tiret à la fin, l'erreur semble persister : https://i.goopics.net/npdq5c.jpg
-*-coding:Latin-1 -*-
"""Ce fichier affiche simplement une ligne grâce à la fonction print."""
import os
print("Salut le monde !")
# Sous Windows il faut mettre ce programme en pause (inutile sous Linux)
os.system("pause")
ouvrir un tuto pour apprendre les bases est recommandé.
Les tutos autour de cx_Freeze sont étrangement longs pour la petite opération que je cherche à effectuer et souvent fait avec visual studio code alors que j'utilise Idle, et je ne suis pas sûr si je pourrais trouver précisément un tuto qui a trait à ce que je veux faire. Celui qui s'en rapproche le plus que j'ai trouvé est celui-ci : https://www.youtube.com/watch?v=-rErag3U4pE
Au moment de préparer le fichier setup, j'ai garder le "excludes" au lieu de le remplacer par "includes" comme dans le tuto, car le code que j'utilise n'a que trois lignes et n'utilise pas Tkinter : https://cx-freeze.readthedocs.io/en/6.4/distutils.html
import sys
from cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]}
# GUI applications require a different base on Windows (the default is for a
# console application).
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup( name = "guifoo",
version = "0.1",
description = "My GUI application!",
options = {"build_exe": build_exe_options},
executables = [Executable("salut.py", base=base)])
Je penses avoir bien suivi les étapes mais un message d'erreur relatif à la syntaxe est une fois de plus, apparu. Le voici en deux parties :
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Après avoir corrigé mon code comme suit en ajoutant un "# " devant l'encodage, et réessayer la commande dans l'invite de commande, un très long message y est apparu sans spécifié d'erreur à la fin :
# -*-coding:Latin-1 -*-
"""Ce fichier affiche simplement une ligne grâce à la fonction print."""
import os
print("Salut le monde !")
# Sous Windows il faut mettre ce programme en pause (inutile sous Linux)
os.system("pause")
Tu as des DLL manquantes, je pense qu'il te faut télécharger et installer Visual C++ Redistribuable, redémarrer Windows et faire à nouveau le test.
Je ne suis pas sur Windows, je n'ai aucune idée sur le fait que ça résoudra le problème.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Je suppose que ce sont les lignes du message incluant des WARNING qui sont inquiétantes. J'ai bien suivi les instructions mais ces lignes persistes. Voici le message complet si il apparait : [Ancien lien modifié pour celui-ci : https://www.swisstransfer.com/d/d6f1456b-90fe-4144-92be-67c36a344c0e ]
Visual C++ Redistribuable semble également bien présent dans mon système :
J'ai également songé à ajouter le chemin "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes" au path, mais je ne suis pas certain que ce soit convenable. A mon niveau, je n'ai pas réussi à régler ça, donc si quelqu'un sur Windows connaît la manip à effectuer pour résoudre ce soucis, je veux bien en être mis au fait.
euh, on a pas ton message d'erreur (juste un "lien" vers un fichier de ton bureau donc inaccessible)
A priori tu as effectivement les runtime VC++. Tu as quelle version de cxfreeze? (a priori la dernière (6.15.11) vu la date de tes fichiers cxfreeze, sinon mettre à jour cxfreeze pour voir)
Toute mes excuses. J'ai regénérer à nouveau un fichier exécutable. Comme le message est trop long pour être copier-coller car dépassant les 100 milles caractères, le mieux, je crois, est que je le copie-colle dans un fichier .txt et le transfert dans un lien ici ou il pourra être téléchargé pendant 30 jours.
Comme le lien expire le 13/01/2024 à 18h16, je copie-colle également une partie du début et de la fin du message :
Si je résume, ton programme fonctionne mais tu t'inquiètes des warning ?
Comme leur nom l'indique, ce ne sont que des avertissements qui n'ont ici aucun impact.
Ton fichier de setup.py n'est pas pris en compte si tu utilises la commande directe cxfreeze script.py; si tu veux le prendre en compte, il faut utiliser la commande "python setup.py build"
- Edité par umfred 19 décembre 2023 à 18:18:25
Générer un exécutable avec cx_Freeze
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)