2009-12-15 3 views

Respuesta

0

Desafortunadamente, py2exe ha cambiado la forma en que sus obras módulo, por lo que el ejemplo proporcionado here hace ya no funciona

He podido hacer esto anulando una de las funciones de py2exe, y luego simplemente insertándolas en el archivo zip creado por py2exe.

He aquí un ejemplo:

import py2exe 
import zipfile 

myFiles = [ 
    "C:/Users/Kade/Documents/ExampleFiles/example_1.doc", 
    "C:/Users/Kade/Documents/ExampleFiles/example_2.dll", 
    "C:/Users/Kade/Documents/ExampleFiles/example_3.obj", 
    "C:/Users/Kade/Documents/ExampleFiles/example_4.H", 
    ] 

def better_copy_files(self, destdir): 
    """Overriden so that things can be included in the library.zip.""" 

    #Run function as normal 
    original_copy_files(self, destdir) 

    #Get the zipfile's location 
    if self.options.libname is not None: 
     libpath = os.path.join(destdir, self.options.libname) 

     #Re-open the zip file 
     if self.options.compress: 
      compression = zipfile.ZIP_DEFLATED 
     else: 
      compression = zipfile.ZIP_STORED 
     arc = zipfile.ZipFile(libpath, "a", compression = compression) 

     #Add your items to the zipfile 
     for item in myFiles: 
      if self.options.verbose: 
       print("Copy File %s to %s" % (item, libpath)) 
      arc.write(item, os.path.basename(item)) 
     arc.close() 

#Connect overrides 
original_copy_files = py2exe.runtime.Runtime.copy_files 
py2exe.runtime.Runtime.copy_files = better_copy_files 
Cuestiones relacionadas