From: Thomas H. <th...@us...> - 2005-04-12 07:44:42
|
Update of /cvsroot/py2exe/py2exe/py2exe In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3693 Modified Files: build_exe.py Log Message: Typo fixes, and first version of single-file exe (plus python.dll). Index: build_exe.py =================================================================== RCS file: /cvsroot/py2exe/py2exe/py2exe/build_exe.py,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** build_exe.py 8 Apr 2005 17:55:02 -0000 1.43 --- build_exe.py 12 Apr 2005 07:44:33 -0000 1.44 *************** *** 140,147 **** ("xref", 'x', ! "create and show a module crosss reference") ] ! boolean_options = ["compressed", "xref"] def initialize_options (self): --- 140,150 ---- ("xref", 'x', ! "create and show a module cross reference"), ! ! ("single-file", 's', ! "create a single-file executable (well, two files at least;-)"), ] ! boolean_options = ["compressed", "xref", "single-file"] def initialize_options (self): *************** *** 157,160 **** --- 160,164 ---- self.dll_excludes = None self.typelibs = None + self.single_file = 0 def finalize_options (self): *************** *** 171,174 **** --- 175,182 ---- ('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): *************** *** 373,379 **** # magic which relies on this exact filename. # So we do it via a custom loader - see create_loader() ! dst = os.path.join(self.lib_dir, os.path.basename(item.__file__)) ! self.copy_file(src, dst) ! self.lib_files.append(dst) # create the shared zipfile containing all Python modules --- 381,392 ---- # magic which relies on this exact filename. # So we do it via a custom loader - see create_loader() ! if not self.single_file: ! dst = os.path.join(self.lib_dir, os.path.basename(item.__file__)) ! self.copy_file(src, dst) ! self.lib_files.append(dst) ! else: ! dst = os.path.join(self.collect_dir, os.path.basename(src)) ! self.copy_file(src, dst) ! compiled_files.append(os.path.basename(dst)) # create the shared zipfile containing all Python modules *************** *** 393,397 **** self.lib_files.append(arcname) ! print "*** copy dlls ***" for dll in dlls: base = os.path.basename(dll) --- 406,410 ---- self.lib_files.append(arcname) ! self.announce("*** copy dlls ***") for dll in dlls: base = os.path.basename(dll) *************** *** 620,623 **** --- 633,640 ---- os.path.abspath(boot), "exec") code_objects = [boot_code] + if self.single_file: + code_objects.append( + compile("import zipextimporter; zipextimporter.install()", + "<install zipextimporter>", "exec")) for var_name, var_val in vars.items(): code_objects.append( *************** *** 857,863 **** elif suffix in _c_suffixes: extensions.append(item) ! loader = self.create_loader(item) ! if loader: ! py_files.append(loader) else: raise RuntimeError \ --- 874,881 ---- elif suffix in _c_suffixes: extensions.append(item) ! if not self.single_file: ! loader = self.create_loader(item) ! if loader: ! py_files.append(loader) else: raise RuntimeError \ *************** *** 905,909 **** open(pathname, "w").write(source) else: ! return from modulefinder import Module return Module(item.__name__, pathname) --- 923,927 ---- open(pathname, "w").write(source) else: ! return None from modulefinder import Module return Module(item.__name__, pathname) *************** *** 911,915 **** def plat_prepare(self): self.includes.append("warnings") # needed by Python itself ! ## self.packages.append("encodings") if self.compressed: self.includes.append("zlib") --- 929,937 ---- def plat_prepare(self): self.includes.append("warnings") # needed by Python itself ! self.packages.append("encodings") ! self.includes.append("codecs") ! if self.single_file: ! self.includes.append("zipextimporter") ! self.excludes.append("_memimporter") if self.compressed: self.includes.append("zlib") |