Si vous êtes comme moi, vous êtes sûrement frustrés d’avoir créé un beau programme Python et de ne pas l’avoir en exécutable sous Windows.
Dans cet article, je vais vous montrer comment transformer votre fichier .py en fichier .exe.
Allez en ligne de commande. Pour cela, allez dans la recherche Windows et tapez “cmd”.
Ensuite, tapez la commande suivante :
python -m pip install cx_Freeze --upgrade
Si tout se passe bien, un message positif apparaîtra. Sinon… ben dommage ! 🙂
Je vais partir d’un programme que j’avais déjà exposé, celui d’un chiffrement/déchiffrement affine, en l’améliorant un peu :
alphabet=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',"'","ù","é","è","à","ç","-","ê"," "] # Calcul du pgcd de a et b def pgcd(a,b): while b!=0: a,b=b,a%b return a # fonction de chiffrement affine def chiffrementAffine(a,b,L): x=alphabet.index(L) y=(a*x+b)%len(alphabet) return alphabet[y] # Calcul de l'inverse d'un nombre modulo 26 def inverse(a): x=0 while (a*x%len(alphabet)!=1): x=x+1 return x # Fonction de déchiffrement def dechiffrementAffine(a,b,L): x=alphabet.index(L) y=(inverse(a)*(x-b))%len(alphabet) return alphabet[y] # Affichage du mot chiffré def crypt(M,a,b): if (pgcd(a,len(alphabet))==1): mot = [chiffrementAffine(a,b,i) for i in M] return "".join(mot) else: return "Chiffrement impossible. Veuillez choisir un nombre a premier avec"+str(len(alphabet))+"." # Affichage du mot déchiffré def decrypt(M,a,b): if (pgcd(a,len(alphabet))==1): mot = [dechiffrementAffine(a,b,i) for i in M] return "".join(mot) else: return "Déchiffrement impossible. Le nombre a n'est pas premier avec"+str(len(alphabet))+"." # Menu def menu(): print('Menu du jour...\n----------------') print('1. Chiffrer un message') print('2. Déchiffrer un message\n-----------------------\n') choix = int(input('Quel est votre choix ? ')) if choix == 1: chiffrer() elif choix == 2: dechiffrer() else: print('Can you be serious please... ?\n') menu() # Retour au menu ? def return_menu(): rep = input('\nSouhaitez-vous revenir au menu (O/N) ? ') if rep.upper() == 'N': the_end() elif rep.upper() == 'O': menu() else: print('Can you be serious please... ?\n') return_menu() # the_end() def the_end(): print("Ok. C'est vous qui voyez... See you soon !") # chiffrer def chiffrer(): msg = input('Entrez le message à chiffrer : ') a = int(input('Entrez la première clé : ')) b = int(input('Entrez la seconde clé : ')) print('Le chiffrement donne : ',crypt(msg,a,b)) return_menu() def dechiffrer(): msg = input('Entrez le message à déchiffrer : ') a = int(input('Entrez la première clé : ')) b = int(input('Entrez la seconde clé : ')) print('Le chiffrement donne : ',decrypt(msg,a,b)) return_menu() menu()
Ce programme, je vais le sauvegarder sous le nom chiffrement.py.
Je vais créer maintenant un autre programme Python:
from cx_Freeze import setup, Executable setup( name = "ChiffrementAffine", version = "0.1", description = "Chiffre et déchiffre un message", executables = [Executable("chiffrement.py")] )
Je vais sauvegarder ce programme sous le nom setup.py dans le même répertoire que chiffrement.py.
En ligne de commande, je vais dans le répertoire où se trouvent mes deux fichiers Python, puis je tape :
python setup.py build
Cela peut prendre quelques secondes si c’est la première fois que vous entrez cette ligne de commande. À la fin, on doit obtenir un écran comme celui-ci:
Dans le répertoire où se trouvent les fichiers Python, un répertoire nommé build s’est créé, dans lequel se trouve un répertoire dont le nom ressemble à exe.win32-3.6 , dans lequel se trouve le fichier exécutable, ainsi que plein de fichiers dll.
Et voilà ! Votre fichier exécutable est prêt !
Pour les abonné.e.s de ce site, je mets le ZIP correspondant sur cette page.