python - Opret en standalone windows exe, der ikke kræver pythonXX.dll

Indlæg af Hanne Mølgaard Plasc

Problem



er der en måde at oprette en selvstændig .exe fra et python script.
Executables genereret med py2exe kan kun køre med pythonXX.dll.
Jeg vil gerne have en helt selvstændig .exe, der ikke kræver installation af python runtime biblioteket.
Det ligner et forbindelsesproblem, men ved hjælp af statisk bibliotek i stedet for den dynamiske, og det ville også være nyttigt at anvende en strimmel for at fjerne de ubrugte symboler.


Enhver ide?


Tak.


Alessandro

Bedste reference


Du kan gøre dette i den seneste version af py2exe ...
Tilføj kun noget som koden nedenfor i din setup.py fil (hoveddelen er 'bundle\_files': 1).


Hvis du vil medtage din TkInter-pakke i installationen, skal du bruge 'inklusiv' -tasten.


distutils.core.setup(
      windows=[
            {'script': 'yourmodule.py',
             'icon\_resources': [(1, 'moduleicon.ico')]
            }
      ],
      zipfile=None,
      options={'py2exe':{
                         'includes': ['tkinter'],
                         'bundle\_files': 1
                        }
      }
  )

Andre referencer 1


På grund af hvordan Windows 'dynamiske linker virker, kan du ikke bruge det statiske bibliotek, hvis du bruger .pyd eller .dll Python-moduler; DLL'er, der er indlæst i Windows, deler ikke deres symboler automatisk med den eksekverbare og kræver derfor en separat DLL indeholdende Python-symbolerne.

Andre referencer 2


Hvis dit formål med at have en enkelt eksekverbar er at lette downloading/emailing osv., Har jeg løst dette ved at kombinere py2exe-output ved hjælp af Inno Setup. Dette er faktisk bedre end at have en enkelt eksekverbar, fordi i stedet for at give en eksekverbar fil, der kan blive droppet i en mappe, en velopdragen Windows-applikation vil give en afinstallerer, dukker op i Applet Tilføj/fjern programmer osv. Inno håndterer alt dette for dig. [3]

Andre referencer 3


En anden løsning er at oprette en enkelt exe med python og alle dine afhængigheder installeret inde i den, herunder python.dll. Der er lidt magi i omslaget, men det virker bare. Detaljerne er her:


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

Andre referencer 4


Dette er ikke den bedste måde at gøre det på, men du kan overveje at bruge eksekverbar SFX Archive med både .exe og .dll-filer inde, og indstil det til at udføre din .exe-fil, når den er dobbeltklikket.