{"id":1022,"date":"2019-02-01T19:10:32","date_gmt":"2019-02-01T18:10:32","guid":{"rendered":"https:\/\/www.mathweb.fr\/euclide\/?p=1022"},"modified":"2024-06-09T17:08:25","modified_gmt":"2024-06-09T15:08:25","slug":"creer-un-executable-sous-windows-a-partir-dun-programme-python","status":"publish","type":"post","link":"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/","title":{"rendered":"Cr\u00e9er un ex\u00e9cutable sous Windows \u00e0 partir d&rsquo;un programme Python"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Si vous \u00eates comme moi, vous \u00eates s\u00fbrement frustr\u00e9.e.s d&rsquo;avoir cr\u00e9\u00e9 un beau programme Python et de ne pas l&rsquo;avoir en ex\u00e9cutable sous Windows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans cet article, je vais vous montrer comment transformer votre fichier <strong>.py<\/strong> en fichier <strong>.exe<\/strong>.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_88 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Au menu sur cette page...<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/#Creation_dun_programme_Python\" >Cr\u00e9ation d&rsquo;un programme Python<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/#Construction_de_lexecutable_windows\" >Construction de l&rsquo;ex\u00e9cutable windows<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/#Avec_PyInstaller\" >Avec PyInstaller<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/#Installation_du_module_sil_nest_pas_deja_installe\" >Installation du module (s&rsquo;il n&rsquo;est pas d\u00e9j\u00e0 install\u00e9)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/#Creation_de_lexecutable_windows\" >Cr\u00e9ation de l&rsquo;ex\u00e9cutable windows<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/#Avec_le_module_cx_Freeze\" >Avec le module cx_Freeze<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/#Comparatif\" >Comparatif<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/#Creer_un_installateur\" >Cr\u00e9er un installateur<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Creation_dun_programme_Python\"><\/span>Cr\u00e9ation d&rsquo;un programme Python<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Je vais partir d&rsquo;un programme que j&rsquo;avais d\u00e9j\u00e0 expos\u00e9 (voir <a rel=\"noreferrer noopener\" href=\"https:\/\/www.mathweb.fr\/euclide\/2018\/08\/19\/chiffrement-affine-en-python\/\" target=\"_blank\">cet article<\/a>), celui d&rsquo;un chiffrement\/d\u00e9chiffrement affine, en l&rsquo;am\u00e9liorant un peu (pour prendre un cours sur le chiffrement, vous pouvez <a href=\"https:\/\/courspasquet.fr\" target=\"_blank\" rel=\"noreferrer noopener\">faire appel \u00e0 mes services<\/a>) :<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"> 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',\"'\",\"\u00f9\",\"\u00e9\",\"\u00e8\",\"\u00e0\",\"\u00e7\",\"-\",\"\u00ea\",\" \"]\n\n# Calcul du pgcd de a et b\n\ndef pgcd(a,b):\n    while b!=0:\n        a,b=b,a%b\n    return a\n\n# fonction de chiffrement affine\n\ndef chiffrementAffine(a,b,L):\n        x=alphabet.index(L)\n        y=(a*x+b)%len(alphabet)\n        return alphabet[y]\n\n# Calcul de l'inverse d'un nombre modulo 26\n\ndef inverse(a):\n        x=0\n        while (a*x%len(alphabet)!=1):\n                x=x+1\n        return x\n\n# Fonction de d\u00e9chiffrement\n\ndef dechiffrementAffine(a,b,L):\n    x=alphabet.index(L)\n    y=(inverse(a)*(x-b))%len(alphabet)\n    return alphabet[y]\n                \n\n# Affichage du mot chiffr\u00e9\n\ndef crypt(M,a,b):\n    if (pgcd(a,len(alphabet))==1):\n        mot = [chiffrementAffine(a,b,i) for i in M]\n        return \"\".join(mot)\n    else:\n        return \"Chiffrement impossible. Veuillez choisir un nombre a premier avec\"+str(len(alphabet))+\".\"\n\n# Affichage du mot d\u00e9chiffr\u00e9\n\ndef decrypt(M,a,b):\n    if (pgcd(a,len(alphabet))==1):\n        mot = [dechiffrementAffine(a,b,i) for i in M]\n        return \"\".join(mot)\n    else:\n        return \"D\u00e9chiffrement impossible. Le nombre a n'est pas premier avec\"+str(len(alphabet))+\".\"\n\n# Menu\n\ndef menu():\n    print('Menu du jour...\\n----------------')\n    print('1. Chiffrer un message')\n    print('2. D\u00e9chiffrer un message\\n-----------------------\\n')\n    choix = int(input('Quel est votre choix ? '))\n    if choix == 1:\n        chiffrer()\n    elif choix == 2:\n        dechiffrer()\n    else:\n        print('Can you be serious please... ?\\n')\n        menu()\n\n# Retour au menu ?\n\ndef return_menu():\n    rep = input('\\nSouhaitez-vous revenir au menu (O\/N) ? ')\n    if rep.upper() == 'N':\n        the_end()\n    elif rep.upper() == 'O':\n        menu()\n    else:\n        print('Can you be serious please... ?\\n')\n        return_menu()\n# the_end()\n\ndef the_end():\n    print(\"Ok. C'est vous qui voyez... See you soon !\")\n    \n# chiffrer\n\ndef chiffrer():\n    msg = input('Entrez le message \u00e0 chiffrer : ')\n    a = int(input('Entrez la premi\u00e8re cl\u00e9 : '))\n    b = int(input('Entrez la seconde cl\u00e9 : '))\n    print('Le chiffrement donne : ',crypt(msg,a,b))\n    return_menu()\n\ndef dechiffrer():\n    msg = input('Entrez le message \u00e0 d\u00e9chiffrer : ')\n    a = int(input('Entrez la premi\u00e8re cl\u00e9 : '))\n    b = int(input('Entrez la seconde cl\u00e9 : '))\n    print('Le chiffrement donne : ',decrypt(msg,a,b))\n    return_menu()\n\nmenu()<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ce programme, je vais le sauvegarder sous le nom <em>chiffrement.py<\/em>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Construction_de_lexecutable_windows\"><\/span>Construction de l&rsquo;ex\u00e9cutable windows<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Avec_PyInstaller\"><\/span>Avec PyInstaller<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Installation_du_module_sil_nest_pas_deja_installe\"><\/span>Installation du module (s&rsquo;il n&rsquo;est pas d\u00e9j\u00e0 install\u00e9)<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Allez en ligne de commande. Pour cela, allez dans la recherche Windows et tapez \u00ab\u00a0cmd\u00a0\u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ensuite, tapez la commande suivante :<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"msdos\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">python -m pip install PyInstaller<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Creation_de_lexecutable_windows\"><\/span>Cr\u00e9ation de l&rsquo;ex\u00e9cutable windows<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">En ligne de commande, je vais dans le r\u00e9pertoire o\u00f9 se trouve le fichier Python, puis je tape :<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"msdos\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">pyinstaller &lt;nom du fichier.py><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Sous windows, deux r\u00e9pertoires se cr\u00e9ent alors : <em>dist<\/em> et <em>build<\/em>. Dans <em>dist<\/em> se trouve un r\u00e9pertoire du nom de votre fichier <em>py<\/em> dans lequel se trouve l&rsquo;ex\u00e9cutable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Et voil\u00e0 ! Votre fichier python ex\u00e9cutable windows est pr\u00eat !<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/02\/Fenetre-programme.png\" data-fancybox=\"gallery\"><img loading=\"lazy\" decoding=\"async\" width=\"417\" height=\"227\" src=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/02\/Fenetre-programme.png\" alt=\"\" class=\"wp-image-1024\" srcset=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/02\/Fenetre-programme.png 417w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/02\/Fenetre-programme-300x163.png 300w\" sizes=\"auto, (max-width: 417px) 100vw, 417px\" \/><\/a><figcaption class=\"wp-element-caption\">fen\u00eatre de ex\u00e9cutable windows \u00e0 partir d&rsquo;un programme python<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Je mets le ZIP correspondant <a href=\"https:\/\/www.mathweb.fr\/euclide\/les-sources-latex-de-certains-articles\/#20190201\">sur cette page<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Avec_le_module_cx_Freeze\"><\/span>Avec le module cx_Freeze<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Avec ce module, je dois cr\u00e9er un fichier <em>setup.py<\/em> dans le m\u00eame dossier que <em>chiffrement.py<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans un cas g\u00e9n\u00e9ral, la structure du fichier <em>setup.py<\/em> pourra \u00eatre de la forme suivante:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># commande \u00e0 taper en ligne de commande apr\u00e8s la sauvegarde de ce fichier:\n# python setup.py build\n\nfrom cx_Freeze import setup, Executable\n  \nexecutables = [\n        Executable(script = \"nom_du_fichier_principal.py\",icon = \"nom_de_l_icone.ico\", base = \"Win32GUI\" )\n]\n# ne pas mettre \"base = ...\" si le programme n'est pas en mode graphique, comme c'est le cas pour chiffrement.py.\n  \nbuildOptions = dict( \n        includes = [\"module1\",\"module2\",\"module3\",...],\n        include_files = [\"fichier1.txt\", \"mon_icone.ico\"]\n)\n  \nsetup(\n    name = \"nom_du_programme\",\n    version = \"1.2\",\n    description = \"description du programme\",\n    author = \"votre nom\",\n    options = dict(build_exe = buildOptions),\n    executables = executables\n)\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Quelques remarques concernant <strong>buildOptions <\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>includes<\/em> est une liste de tous les modules appel\u00e9s dans le programme principal python (par exemple, <em>tkinter<\/em>, <em>random<\/em>, &#8230;);<\/li>\n\n\n\n<li><em>include_files<\/em> est une liste de tous les fichiers externes n\u00e9cessaires au fonctionnement du programme principal (par exemple, un fichier texte, une icone, &#8230;).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ainsi, dans le terminal Windows, apr\u00e8s s&rsquo;\u00eatre plac\u00e9\u00b7e dans le dossier du fichier python principal, on tape:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">python setyp.py build<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">et un dossier \u00ab\u00a0build\u00a0\u00bb est cr\u00e9\u00e9, dans lequel un dossier \u00ab\u00a0exe.win32-3.8\u00a0\u00bb est cr\u00e9\u00e9 (\u00ab\u00a03.8\u00a0\u00bb est la version de Python utilis\u00e9e). Dans ce cernier, on trouvera tout ce qu&rsquo;il faut pour ex\u00e9cuter le fichier exe cr\u00e9\u00e9.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Comparatif\"><\/span>Comparatif<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Avec <em>pyinstaller<\/em>, il y a moins d&rsquo;options, mais le dossier <em>dist<\/em> est plus l\u00e9ger que celui cr\u00e9\u00e9 avec <em>cx_Freeze<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c0 titre de comparaison, pour le <a href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/07\/le-jeu-du-pendu-en-python\/\">jeu du pendu<\/a> que j&rsquo;ai cr\u00e9\u00e9, la taille du dossier cr\u00e9\u00e9 est :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>20 Mo avec <em>pyinstaller<\/em>;<\/li>\n\n\n\n<li>39 Mo avec <em>cx_Freeze<\/em>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Mais ce programme tournant avec une interface graphique (tkinter), <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>la fen\u00eatre graphique se lance au-dessus d&rsquo;une fen\u00eatre DOS quand le fichier exe est cr\u00e9\u00e9 avec <em>pyinstaller<\/em>, et l&rsquo;ic\u00f4ne est standard;<\/li>\n\n\n\n<li>avec l&rsquo;option (base = \u00ab\u00a0Win32GUI\u00a0\u00bb), le programme cr\u00e9\u00e9 avec <em>cx_Freeze<\/em> lance la fen\u00eatre graphique directement, et l&rsquo;ic\u00f4ne du fichier exe est celui que j&rsquo;ai souhait\u00e9.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Il vous appartient donc de voir ce que vous souhaitez privil\u00e9gier.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Creer_un_installateur\"><\/span>Cr\u00e9er un installateur<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Une fois tout \u00e7a fait, si vous souhaitez distribuer votre programme, vous pouvez bien entendu compresser le tout dans un ZIP (par exemple), mais vous pouvez aussi cr\u00e9er un installateur. C&rsquo;est ce que j&rsquo;ai fait pour le jeu du pendu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">J&rsquo;utilise personnellement <a href=\"https:\/\/jrsoftware.org\/isdl.php\" target=\"_blank\" rel=\"noreferrer noopener\">Inno Setup Compiler<\/a>. C&rsquo;est un peu compliqu\u00e9 au d\u00e9but, mais apr\u00e8s plusieurs essais, on arrive \u00e0 faire ce que l&rsquo;on veut. Il faut juste se laisser guider par le mode \u00ab\u00a0Wizard\u00a0\u00bb.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"581\" height=\"451\" src=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/inno-setup-installer.png\" alt=\"inno setup installer python ex\u00e9cutable windows\" class=\"wp-image-3578\" srcset=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/inno-setup-installer.png 581w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/inno-setup-installer-300x233.png 300w\" sizes=\"auto, (max-width: 581px) 100vw, 581px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Il y a ensuite quelques fen\u00eatres qui vont s&rsquo;afficher et il faudra compl\u00e9ter les champs propos\u00e9s.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si vous \u00eates comme moi, vous \u00eates s\u00fbrement frustr\u00e9.e.s d&rsquo;avoir cr\u00e9\u00e9 un beau programme Python et de ne pas l&rsquo;avoir en ex\u00e9cutable sous Windows. Dans cet article, je vais vous montrer comment transformer votre fichier .py en fichier .exe. Cr\u00e9ation d&rsquo;un programme Python Je vais partir d&rsquo;un programme que j&rsquo;avais [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[232,229,231,230],"class_list":["post-1022","post","type-post","status-publish","format-standard","hentry","category-python","tag-cx_freeze","tag-executable","tag-pyinstaller","tag-windows"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Cr\u00e9er un ex\u00e9cutable sous Windows \u00e0 partir d&#039;un programme Python -<\/title>\n<meta name=\"description\" content=\"Vous avez cr\u00e9\u00e9 un programme Python et souhaitez cr\u00e9er un ex\u00e9cutable sous windows ? Je vous explique ce qu&#039;il faut faire en \u00e0 peine 5 minutes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cr\u00e9er un ex\u00e9cutable sous Windows \u00e0 partir d&#039;un programme Python -\" \/>\n<meta property=\"og:description\" content=\"Vous avez cr\u00e9\u00e9 un programme Python et souhaitez cr\u00e9er un ex\u00e9cutable sous windows ? Je vous explique ce qu&#039;il faut faire en \u00e0 peine 5 minutes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Mathweb.fr\" \/>\n<meta property=\"article:published_time\" content=\"2019-02-01T18:10:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-09T15:08:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/02\/Fenetre-programme.png\" \/>\n<meta name=\"author\" content=\"St\u00e9phane Pasquet\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"St\u00e9phane Pasquet\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/02\\\/01\\\/creer-un-executable-sous-windows-a-partir-dun-programme-python\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/02\\\/01\\\/creer-un-executable-sous-windows-a-partir-dun-programme-python\\\/\"},\"author\":{\"name\":\"St\u00e9phane Pasquet\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"headline\":\"Cr\u00e9er un ex\u00e9cutable sous Windows \u00e0 partir d&rsquo;un programme Python\",\"datePublished\":\"2019-02-01T18:10:32+00:00\",\"dateModified\":\"2024-06-09T15:08:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/02\\\/01\\\/creer-un-executable-sous-windows-a-partir-dun-programme-python\\\/\"},\"wordCount\":620,\"commentCount\":28,\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/02\\\/01\\\/creer-un-executable-sous-windows-a-partir-dun-programme-python\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2019\\\/02\\\/Fenetre-programme.png\",\"keywords\":[\"cx_Freeze\",\"ex\u00e9cutable\",\"pyinstaller\",\"windows\"],\"articleSection\":[\"Python\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/02\\\/01\\\/creer-un-executable-sous-windows-a-partir-dun-programme-python\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/02\\\/01\\\/creer-un-executable-sous-windows-a-partir-dun-programme-python\\\/\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/02\\\/01\\\/creer-un-executable-sous-windows-a-partir-dun-programme-python\\\/\",\"name\":\"Cr\u00e9er un ex\u00e9cutable sous Windows \u00e0 partir d'un programme Python -\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/02\\\/01\\\/creer-un-executable-sous-windows-a-partir-dun-programme-python\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/02\\\/01\\\/creer-un-executable-sous-windows-a-partir-dun-programme-python\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2019\\\/02\\\/Fenetre-programme.png\",\"datePublished\":\"2019-02-01T18:10:32+00:00\",\"dateModified\":\"2024-06-09T15:08:25+00:00\",\"description\":\"Vous avez cr\u00e9\u00e9 un programme Python et souhaitez cr\u00e9er un ex\u00e9cutable sous windows ? Je vous explique ce qu'il faut faire en \u00e0 peine 5 minutes.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/02\\\/01\\\/creer-un-executable-sous-windows-a-partir-dun-programme-python\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/02\\\/01\\\/creer-un-executable-sous-windows-a-partir-dun-programme-python\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/02\\\/01\\\/creer-un-executable-sous-windows-a-partir-dun-programme-python\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2019\\\/02\\\/Fenetre-programme.png\",\"contentUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2019\\\/02\\\/Fenetre-programme.png\",\"width\":417,\"height\":227},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/02\\\/01\\\/creer-un-executable-sous-windows-a-partir-dun-programme-python\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cr\u00e9er un ex\u00e9cutable sous Windows \u00e0 partir d&#8217;un programme Python\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\",\"name\":\"Mathweb.fr\",\"description\":\"Math\u00e9matiques, LaTeX et Python\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\",\"name\":\"St\u00e9phane Pasquet\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"contentUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"width\":74,\"height\":77,\"caption\":\"St\u00e9phane Pasquet\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cr\u00e9er un ex\u00e9cutable sous Windows \u00e0 partir d'un programme Python -","description":"Vous avez cr\u00e9\u00e9 un programme Python et souhaitez cr\u00e9er un ex\u00e9cutable sous windows ? Je vous explique ce qu'il faut faire en \u00e0 peine 5 minutes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/","og_locale":"fr_FR","og_type":"article","og_title":"Cr\u00e9er un ex\u00e9cutable sous Windows \u00e0 partir d'un programme Python -","og_description":"Vous avez cr\u00e9\u00e9 un programme Python et souhaitez cr\u00e9er un ex\u00e9cutable sous windows ? Je vous explique ce qu'il faut faire en \u00e0 peine 5 minutes.","og_url":"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/","og_site_name":"Mathweb.fr","article_published_time":"2019-02-01T18:10:32+00:00","article_modified_time":"2024-06-09T15:08:25+00:00","og_image":[{"url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/02\/Fenetre-programme.png","type":"","width":"","height":""}],"author":"St\u00e9phane Pasquet","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"St\u00e9phane Pasquet","Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/#article","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/"},"author":{"name":"St\u00e9phane Pasquet","@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"headline":"Cr\u00e9er un ex\u00e9cutable sous Windows \u00e0 partir d&rsquo;un programme Python","datePublished":"2019-02-01T18:10:32+00:00","dateModified":"2024-06-09T15:08:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/"},"wordCount":620,"commentCount":28,"publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"image":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/02\/Fenetre-programme.png","keywords":["cx_Freeze","ex\u00e9cutable","pyinstaller","windows"],"articleSection":["Python"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/","url":"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/","name":"Cr\u00e9er un ex\u00e9cutable sous Windows \u00e0 partir d'un programme Python -","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/#primaryimage"},"image":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/02\/Fenetre-programme.png","datePublished":"2019-02-01T18:10:32+00:00","dateModified":"2024-06-09T15:08:25+00:00","description":"Vous avez cr\u00e9\u00e9 un programme Python et souhaitez cr\u00e9er un ex\u00e9cutable sous windows ? Je vous explique ce qu'il faut faire en \u00e0 peine 5 minutes.","breadcrumb":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/#primaryimage","url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/02\/Fenetre-programme.png","contentUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/02\/Fenetre-programme.png","width":417,"height":227},{"@type":"BreadcrumbList","@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/02\/01\/creer-un-executable-sous-windows-a-partir-dun-programme-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.mathweb.fr\/euclide\/"},{"@type":"ListItem","position":2,"name":"Cr\u00e9er un ex\u00e9cutable sous Windows \u00e0 partir d&#8217;un programme Python"}]},{"@type":"WebSite","@id":"https:\/\/www.mathweb.fr\/euclide\/#website","url":"https:\/\/www.mathweb.fr\/euclide\/","name":"Mathweb.fr","description":"Math\u00e9matiques, LaTeX et Python","publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mathweb.fr\/euclide\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69","name":"St\u00e9phane Pasquet","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","contentUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","width":74,"height":77,"caption":"St\u00e9phane Pasquet"},"logo":{"@id":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp"}}]}},"_links":{"self":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/1022","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/comments?post=1022"}],"version-history":[{"count":0,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/1022\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media?parent=1022"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/categories?post=1022"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/tags?post=1022"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}