Question

est-il un moyen de créer un .exe autonome à partir d'un script python. Exécutables générés avec py2exe peuvent fonctionner uniquement avec pythonXX.dll. Je voudrais obtenir un .exe entièrement autonome qui ne nécessite pas d'installer la bibliothèque d'exécution Python. Il ressemble à un problème qui relie mais en utilisant la bibliothèque statique au lieu d'une dynamique et il serait également utile d'appliquer une bande afin d'éliminer les symboles inutilisés.

Toute idée?

Merci.

Alessandro

Était-ce utile?

La solution

Vous pouvez le faire dans la dernière version de py2exe ... Just ajouter quelque chose comme le code ci-dessous dans votre fichier setup.py (élément clé est « bundle_files »: 1).

Pour inclure votre package TkInter dans l'installation, utilisez la touche 'comprend'.

distutils.core.setup(
      windows=[
            {'script': 'yourmodule.py',
             'icon_resources': [(1, 'moduleicon.ico')]
            }
      ],
      zipfile=None,
      options={'py2exe':{
                         'includes': ['tkinter'],
                         'bundle_files': 1
                        }
      }
  )

Autres conseils

En raison de la façon dont le linker dynamique de Windows fonctionne, vous ne pouvez pas utiliser la bibliothèque statique si vous utilisez .pyd ou .dll modules Python; DLL chargées dans Windows ne partagent pas automatiquement leur espace de symbole avec l'exécutable et nécessitent donc une DLL séparée contenant les symboles Python.

Si votre objectif d'avoir un seul exécutable est de faciliter le téléchargement / envoi par courrier électronique, etc., je l'ai résolu ce problème en regroupant la sortie py2exe en utilisant Inno Setup . Ceci est en fait mieux que d'avoir un seul exécutable, car plutôt que de fournir un fichier exécutable qui peut être déposé dans un répertoire, une application Windows bien comportés fournira un désinstalleur, apparaissent dans la liste Ajout / Suppression de programmes, etc. Inno gère toutes les pour vous.

Une autre solution consiste à créer un seul exe avec python et toutes vos dépendances installées à l'intérieur de celui-ci, y compris le python.dll. Il y a un peu de magie dans l'emballage, mais ça marche. Les détails sont ici:

http://code.google.com /p/pylunch/downloads/detail?name=PyLunch-0.2.pdf

Ce n'est pas la meilleure façon de le faire, mais vous pouvez envisager d'utiliser Archive SFX exécutable à la fois le .exe et .dll à l'intérieur, et la mise à exécution de votre fichier .exe quand il est double-cliqué.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top