2013-02-20 15 views
12

Sto cercando di usare la soluzione di menta fornite su questo link per generare un unico file exe per il mio programma basato Tkinter:Creazione singolo file EXE utilizzando py2exe per un programma Tkinter

py2exe - generate single executable file

Ecco quello che ho scritto in il setup.py:

from distutils.core import setup 
import py2exe, sys, os 

sys.argv.append('py2exe') 

setup(windows=[{'script': 'filename.py'}], \ 
      options={"py2exe": {"includes": ["decimal", "Tkinter", \ 
      "tkFileDialog", "csv", "xml.dom.minidom", "os"], \ 
      'bundle_files': 1, 'compressed': False}}, \ 
      zipfile = None) 

si crea una cartella 'TCL' per Tkinter roba anche se ho specificato bundle_files = 1. inoltre genera anche qualche altro w9xpopen.exe exe. Il mio exe attuale, tuttavia, non funziona, e non dà nemmeno errori. Non funziona nemmeno se rimuovo tutti quelli inclusi.

Qualche idea su cosa potrei mancare qui? Sto lavorando su un computer Windows 7 a 64 bit.

+0

Funziona senza 'bundle_files'? –

+0

Lo fa, ma intendo raggruppare tutto in un unico file exe. bundle_files = 3 funziona bene. –

+0

alcuni post indicano che bundle_files 1 & 2 non funzionano con sistema a 64 bit ... – charo

risposta

10

Grazie a this link, si devono modificare e aggiungere site-packages/py2exe/build_exe.py"tcl85.dll" e "tk85.dll" alla lista dlls_in_exedir. Questo lo farà funzionare, anche se avrai ancora le cartelle tcl, e quelle due dll saranno lì accanto all'exe. Ma è molto meglio di bundle_files=3.

 self.dlls_in_exedir = [python_dll, 
           "w9xpopen%s.exe" % (is_debug_build and "_d" or ""), 
           "msvcr71%s.dll" % (is_debug_build and "d" or ""), 
           "tcl85.dll", 
           "tk85.dll"] 
Problemi correlati