From: Thomas H. <th...@us...> - 2005-04-22 09:11:34
|
Update of /cvsroot/py2exe/py2exe/py2exe In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21776 Modified Files: build_exe.py Log Message: Even single files can now be compressed because zlib.pyd is not loaded with zipimport anymore. Index: build_exe.py =================================================================== RCS file: /cvsroot/py2exe/py2exe/py2exe/build_exe.py,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** build_exe.py 21 Apr 2005 19:41:15 -0000 1.48 --- build_exe.py 22 Apr 2005 09:11:23 -0000 1.49 *************** *** 179,186 **** ('dist_dir', 'dist_dir')) self.dll_excludes = [x.lower() for x in fancy_split(self.dll_excludes)] - if self.single_file: - if self.compressed: - self.warn("compressed is incompatible with single-file: ignored") - self.compressed = 0 def run(self): --- 179,182 ---- *************** *** 534,539 **** --- 530,545 ---- arcfile.write("<pythondll>") bytes = open(os.path.join(self.exe_dir, python_dll), "rb").read() + print "size of pythondll is %d bytes" % len(bytes) arcfile.write(struct.pack("i", len(bytes))) arcfile.write(bytes) # python dll + + if self.compressed: + print "Adding zlib.pyd to %s at %d" % (arcname, arcfile.tell()) + arcfile.write("<zlib.pyd>") + zlib_file = imp.find_module("zlib")[0] + bytes = zlib_file.read() + arcfile.write(struct.pack("i", len(bytes))) + arcfile.write(bytes) # zlib.pyd + arcfile.write(arcbytes) # remove the bundled python dll *************** *** 724,727 **** --- 730,741 ---- # otherwise the resource will not be found. unicode(python_dll).upper(), 1, False) + + if self.compressed: + print "Adding zlib.pyd as resource" + zlib_bytes = imp.find_module("zlib")[0].read() + add_resource(unicode(exe_path), zlib_bytes, + # for some reason, the 3. argument MUST BE UPPER CASE, + # otherwise the resource will not be found. + u"ZLIB.PYD", 1, False) ##later... os.remove(dll_path) |