Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(15) |
Oct
(31) |
Nov
(38) |
Dec
(21) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(46) |
Feb
(2) |
Mar
(10) |
Apr
(13) |
May
(2) |
Jun
(14) |
Jul
(28) |
Aug
(3) |
Sep
(7) |
Oct
(8) |
Nov
(8) |
Dec
(11) |
2005 |
Jan
|
Feb
|
Mar
|
Apr
(42) |
May
(1) |
Jun
(8) |
Jul
(4) |
Aug
(18) |
Sep
(38) |
Oct
(10) |
Nov
|
Dec
(7) |
2006 |
Jan
|
Feb
(8) |
Mar
(9) |
Apr
|
May
|
Jun
(6) |
Jul
(6) |
Aug
|
Sep
|
Oct
|
Nov
(12) |
Dec
(8) |
2007 |
Jan
(3) |
Feb
|
Mar
(9) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(5) |
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
(4) |
Mar
(2) |
Apr
(17) |
May
(16) |
Jun
(2) |
Jul
|
Aug
(3) |
Sep
(1) |
Oct
|
Nov
(11) |
Dec
(1) |
2009 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2012 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(2) |
2013 |
Jan
(14) |
Feb
(14) |
Mar
|
Apr
|
May
(3) |
Jun
(10) |
Jul
(2) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(10) |
Jun
|
Jul
|
Aug
|
Sep
(9) |
Oct
(8) |
Nov
|
Dec
|
2017 |
Jan
(3) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(4) |
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
(8) |
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
|
|
|
|
From: Jimmy Retzlaff <jretz@us...> - 2006-02-13 13:54:22
|
Update of /cvsroot/py2exe/py2exe/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32643/test Added Files: test.py test_2+2.py test_EasyDialogs.py Log Message: Start of automated testing. --- NEW FILE: test_2+2.py --- print 2+2 --- NEW FILE: test.py --- """ Run a series of test scripts before and after packaging with py2exe and ensure that stdout/stderr and the return code are the same. Several different modules are tested for compatibility purposes. Running all tests requires the following packages: ctypes EasyDialogs for Windows """ import glob import os import shutil import subprocess import sys py2exeTemplate = "from distutils.core import setup; import py2exe; setup(script_args=['py2exe', '%s'], console = ['%s'])" def clean(): for path in ['build', 'dist']: if os.path.exists(path): shutil.rmtree(path) def run(*args): popen = subprocess.Popen( args, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT ) output = popen.communicate() return popen.returncode, output def main(): for test in glob.glob('test_*.py'): print test # Execute script to get baseline baseline = run(sys.executable, test) exe = os.path.join('dist', os.path.splitext(test)[0] + '.exe') for option in ['--quiet', '--bundle=1', '--bundle=2', '--bundle=3', '--ascii', '--skip-archive']: # Build exe clean() print option run(sys.executable, '-c', py2exeTemplate % (option, test)) # Run exe and test against baseline assert run(exe) == baseline print clean() if __name__ == '__main__': main() --- NEW FILE: test_EasyDialogs.py --- import sys import time import EasyDialogs progressBar = EasyDialogs.ProgressBar('Testing py2exe', 100, 'Testing, testing, 1-2-3...') for i in range(100): time.sleep(0.001) progressBar.inc() print progressBar.curval sys.exit(progressBar.curval) |
From: Jimmy Retzlaff <jretz@us...> - 2006-02-13 13:53:07
|
Update of /cvsroot/py2exe/py2exe/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32050/test Log Message: Directory /cvsroot/py2exe/py2exe/test added to the repository |
From: Jimmy Retzlaff <jretz@us...> - 2006-02-13 13:51:20
|
Update of /cvsroot/py2exe/py2exe In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31370 Modified Files: ANNOUNCE Log Message: 0.6.4 release. Index: ANNOUNCE =================================================================== RCS file: /cvsroot/py2exe/py2exe/ANNOUNCE,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** ANNOUNCE 7 Oct 2005 05:45:09 -0000 1.12 --- ANNOUNCE 13 Feb 2006 13:51:03 -0000 1.13 *************** *** 1,3 **** ! py2exe 0.6.3 released ===================== --- 1,3 ---- ! py2exe 0.6.4 released ===================== *************** *** 7,10 **** --- 7,29 ---- NT services, exe and dll COM servers are supported. + Changes in 0.6.4: + + * New skip-archive option which copies the Python bytecode files + directly into the dist directory and subdirectories - no + archive is used. + + * An experimental new custom-boot-script option which allows a + boot script to be specified (e.g., --custom-boot-script=cbs.py) + which can do things like installing a customized stdout + blackhole. See py2exe's boot_common.py for examples of what can + be done. The custom boot script is executed during startup of + the executable immediately after boot_common.py is executed. + + * Thomas Heller's performance improvements for finding needed + modules. + + * Mark Hammond's fix for thread-state errors when a py2exe + created executable tries to use a py2exe created COM DLL. + Changes in 0.6.3: |
From: Jimmy Retzlaff <jretz@us...> - 2006-02-13 13:51:20
|
Update of /cvsroot/py2exe/py2exe/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31370/docs Modified Files: py2exe.txt Log Message: 0.6.4 release. Index: py2exe.txt =================================================================== RCS file: /cvsroot/py2exe/py2exe/docs/py2exe.txt,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** py2exe.txt 7 Oct 2005 05:45:41 -0000 1.14 --- py2exe.txt 13 Feb 2006 13:51:03 -0000 1.15 *************** *** 8,14 **** .. _setup-script: http://www.python.org/doc/current/dist/setup-script.html ! .. _py2exe-0.6.3.win32-py2.3.exe: http://prdownloads.sourceforge.net/py2exe/py2exe-0.6.3.win32-py2.3.exe?download ! .. _py2exe-0.6.3.win32-py2.4.exe: http://prdownloads.sourceforge.net/py2exe/py2exe-0.6.3.win32-py2.4.exe?download .. _WIKI: http://starship.python.net/crew/theller/moin.cgi/Py2Exe --- 8,14 ---- .. _setup-script: http://www.python.org/doc/current/dist/setup-script.html ! .. _py2exe-0.6.4.win32-py2.3.exe: http://prdownloads.sourceforge.net/py2exe/py2exe-0.6.4.win32-py2.3.exe?download ! .. _py2exe-0.6.4.win32-py2.4.exe: http://prdownloads.sourceforge.net/py2exe/py2exe-0.6.4.win32-py2.4.exe?download .. _WIKI: http://starship.python.net/crew/theller/moin.cgi/Py2Exe *************** *** 36,40 **** ================================================================ ! Copyright (c) 2001-2005 Thomas Heller, Mark Hammond, Joachim Bauch, Jimmy Retzlaff, and contributors. --- 36,40 ---- ================================================================ ! Copyright (c) 2001-2006 Thomas Heller, Mark Hammond, Joachim Bauch, Jimmy Retzlaff, and contributors. *************** *** 56,59 **** --- 56,78 ---- ---- + **py2exe 0.6.4 released (2006/02/13)** + + New skip-archive option which copies the Python bytecode files + directly into the dist directory and subdirectories - no + archive is used. + + An experimental new custom-boot-script option which allows a boot + script to be specified (e.g., --custom-boot-script=cbs.py) which can + do things like installing a customized stdout blackhole. See + py2exe's boot_common.py for examples of what can be done. The custom + boot script is executed during startup of the executable immediately + after boot_common.py is executed. + + Thomas Heller's performance improvements for finding needed + modules. + + Mark Hammond's fix for thread-state errors when a py2exe + created executable tries to use a py2exe created COM DLL. + **py2exe 0.6.3 released (2005/10/06)** *************** *** 327,332 **** ----------------- ! Download and run the installer py2exe-0.6.3.win32-py2.3.exe_ (for ! Python 2.3), or py2exe-0.6.3.win32-py2.4.exe_ (for Python 2.4). This installs **py2exe** together with some samples, the samples are in --- 346,351 ---- ----------------- ! Download and run the installer py2exe-0.6.4.win32-py2.3.exe_ (for ! Python 2.3), or py2exe-0.6.4.win32-py2.4.exe_ (for Python 2.4). This installs **py2exe** together with some samples, the samples are in |
From: Jimmy Retzlaff <jretz@us...> - 2006-02-13 13:50:13
|
Update of /cvsroot/py2exe/py2exe/py2exe In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31026/py2exe Modified Files: build_exe.py Log Message: Change bundle-files=4 to skip-archive. Add custom-boot-script option. Index: build_exe.py =================================================================== RCS file: /cvsroot/py2exe/py2exe/py2exe/build_exe.py,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** build_exe.py 11 Dec 2005 09:31:42 -0000 1.66 --- build_exe.py 13 Feb 2006 13:50:00 -0000 1.67 *************** *** 59,64 **** # This loader locates extension modules relative to the library.zip ! # file when an archive is used (bundle_files < 4), otherwise it ! # locates extension modules relative to sys.prefix. LOADER = """ def __load(): --- 59,64 ---- # This loader locates extension modules relative to the library.zip ! # file when an archive is used (i.e., skip_archive is not used), otherwise ! # it locates extension modules relative to sys.prefix. LOADER = """ def __load(): *************** *** 153,161 **** "bundle dlls in the zipfile or the exe. Valid levels are 1, 2, or 3 (default)"), ("ascii", 'a', "do not automatically include encodings and codecs"), ] ! boolean_options = ["compressed", "xref", "ascii"] def initialize_options (self): --- 153,167 ---- "bundle dlls in the zipfile or the exe. Valid levels are 1, 2, or 3 (default)"), + ("skip-archive", None, + "do not place Python bytecode files in an archive, put them directly in the file system"), + ("ascii", 'a', "do not automatically include encodings and codecs"), + + ('custom-boot-script=', None, + "Python file that will be run when setting up the runtime environment"), ] ! boolean_options = ["compressed", "xref", "ascii", "skip-archive"] def initialize_options (self): *************** *** 172,176 **** --- 178,184 ---- self.typelibs = None self.bundle_files = 3 + self.skip_archive = 0 self.ascii = 0 + self.custom_boot_script = None def finalize_options (self): *************** *** 180,192 **** self.ignores = fancy_split(self.ignores) self.bundle_files = int(self.bundle_files) ! if self.bundle_files < 1 or self.bundle_files > 4: ! raise DistutilsOptionError, \ ! "bundle-files must be 1, 2, 3, or 4, not %s" % self.bundle_files ! if self.compressed and self.bundle_files > 3: ! raise DistutilsOptionError, \ ! "when compressing, bundle-files must be 1, 2, or 3, not %s" % self.bundle_files ! if self.distribution.zipfile is None and self.bundle_files > 3: raise DistutilsOptionError, \ ! "zipfile cannot be None when bundle-files is %s" % self.bundle_files # includes is stronger than excludes for m in self.includes: --- 188,201 ---- self.ignores = fancy_split(self.ignores) self.bundle_files = int(self.bundle_files) ! if self.bundle_files < 1 or self.bundle_files > 3: raise DistutilsOptionError, \ ! "bundle-files must be 1, 2, or 3, not %s" % self.bundle_files ! if self.skip_archive: ! if self.compressed: ! raise DistutilsOptionError, \ ! "can't compress when skipping archive" ! if self.distribution.zipfile is None: ! raise DistutilsOptionError, \ ! "zipfile cannot be None when skipping archive" # includes is stronger than excludes for m in self.includes: *************** *** 743,746 **** --- 752,759 ---- compile("%s=%r\n" % (var_name, var_val), var_name, "exec") ) + if self.custom_boot_script: + code_object = compile(file(self.custom_boot_script, "U").read() + "\n", + os.path.abspath(self.custom_boot_script), "exec") + code_objects.append(code_object) if script: code_object = compile(open(script, "U").read() + "\n", *************** *** 1150,1153 **** --- 1163,1169 ---- mf.run_script(self.get_boot_script("service")) + if self.custom_boot_script: + mf.run_script(self.custom_boot_script) + for mod in self.includes: if mod[-2:] == '.*': *************** *** 1206,1210 **** verbose=0, dry_run=0): from distutils.dir_util import mkpath ! if self.bundle_files < 4: # Like distutils "make_archive", but we can specify the files # to include, and the compression to use - default is --- 1222,1226 ---- verbose=0, dry_run=0): from distutils.dir_util import mkpath ! if not self.skip_archive: # Like distutils "make_archive", but we can specify the files # to include, and the compression to use - default is |
From: Jimmy Retzlaff <jretz@us...> - 2006-02-13 13:49:11
|
Update of /cvsroot/py2exe/py2exe/py2exe In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30697/py2exe Modified Files: __init__.py Log Message: Bump version number to 0.6.4. Index: __init__.py =================================================================== RCS file: /cvsroot/py2exe/py2exe/py2exe/__init__.py,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** __init__.py 7 Oct 2005 05:42:15 -0000 1.33 --- __init__.py 13 Feb 2006 13:49:00 -0000 1.34 *************** *** 63,67 **** # ! __version__ = "0.6.3" import distutils.dist, distutils.core, distutils.command, build_exe, sys --- 63,67 ---- # ! __version__ = "0.6.4" import distutils.dist, distutils.core, distutils.command, build_exe, sys |
From: Jimmy Retzlaff <jretz@us...> - 2006-02-13 13:48:05
|
Update of /cvsroot/py2exe/py2exe In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30374 Modified Files: ChangeLog Log Message: py2exe 0.6.4 released. Changed bundle-files=4 option to be the skip-archive option. bundle-files is really about DLLs, not bytecode files. Added experimental new custom-boot-script option which allows a boot script to be specified which can do things like installing a customized stdout blackhole. The custom boot script is executed during startup of the executable immediately after boot_common.py is executed. Index: ChangeLog =================================================================== RCS file: /cvsroot/py2exe/py2exe/ChangeLog,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** ChangeLog 7 Oct 2005 05:46:16 -0000 1.35 --- ChangeLog 13 Feb 2006 13:47:50 -0000 1.36 *************** *** 1,2 **** --- 1,29 ---- + 2006-02-13 Jimmy Retzlaff <jimmy@...> + + * py2exe 0.6.4 released. + + * Changed bundle-files=4 option to be the skip-archive option. + bundle-files is really about DLLs, not bytecode files. + + * Added experimental new custom-boot-script option which allows a + boot script to be specified which can do things like installing + a customized stdout blackhole. The custom boot script is executed + during startup of the executable immediately after boot_common.py + is executed. + + 2005-12-10 Jimmy Retzlaff <jimmy@...> + + * Apply a patch from Antony Kummel adding a more elaborate + explanation for the motivation behind the special handling of + stdout/stderr in windows (as opposed to console) applications. + + * Locate extension modules relative to the archive's location + when an archive is used. + + * Add bundle-files=4 option which copies the .pyo files directly + into the dist directory and subdirectories - no archive is used. + + * Performance improvements for mf.py from Thomas Heller. + 2005-10-06 Jimmy Retzlaff <jimmy@...> *************** *** 6,10 **** * Added Jimmy Retzlaff as maintainer and changed website pointers ! to http://www.py2exe.org/. 2005-09-09 Thomas Heller <theller@...> --- 33,37 ---- * Added Jimmy Retzlaff as maintainer and changed website pointers ! to http://www.py2exe.org/. 2005-09-09 Thomas Heller <theller@...> |
From: Jimmy Retzlaff <jretz@us...> - 2006-02-13 13:17:30
|
Update of /cvsroot/py2exe/py2exe/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18740/source Modified Files: import-tab.c import-tab.h mktab.py start.c Log Message: Index: import-tab.c =================================================================== RCS file: /cvsroot/py2exe/py2exe/source/import-tab.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** import-tab.c 7 Sep 2005 06:16:18 -0000 1.4 --- import-tab.c 13 Feb 2006 13:17:22 -0000 1.5 *************** *** 54,55 **** --- 54,56 ---- { "Py_NoSiteFlag", NULL }, { "Py_OptimizeFlag", NULL }, + { "Py_IgnoreEnvironmentFlag", NULL }, Index: start.c =================================================================== RCS file: /cvsroot/py2exe/py2exe/source/start.c,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** start.c 2 Dec 2005 05:46:16 -0000 1.30 --- start.c 13 Feb 2006 13:17:22 -0000 1.31 *************** *** 241,244 **** --- 241,295 ---- } + static int set_path() + { + /* If the zip path has any path component, then build our Python + home directory from that. + */ + char *fname; + int lib_dir_len; + char *ppath; + pZipBaseName = pScript - 1; + /* let pZipBaseName point to the basename of the zippath */ + while (pZipBaseName > p_script_info->zippath && \ + *(pZipBaseName-1) != '\\') + pZipBaseName--; + /* dirname is the directory of the executable */ + strcpy(libdirname, dirname); + /* length of lib director name */ + lib_dir_len = pZipBaseName-p_script_info->zippath; /* incl. tail slash */ + if (lib_dir_len) { + char *p = libdirname+strlen(libdirname); + *p++ = '\\'; + strncpy(p, p_script_info->zippath, lib_dir_len-1); + p += lib_dir_len-1; + *p++ = '\0'; + } + /* Fully-qualify it */ + GetFullPathName(libdirname, sizeof(libdirname), libdirname, &fname); + + Py_SetPythonHome(libdirname); + /* Let Python calculate its initial path, according to the + builtin rules */ + ppath = Py_GetPath(); + // printf("Initial path: %s\n", ppath); + + /* HACK: We don't like so rules. + We know that Py_GetPath points to writeable memory, + so we copy our own path into it. + */ + if (strlen(ppath) <= strlen(libdirname) + strlen(pZipBaseName) + 1) { + /* Um. Not enough space. What now? */ + fprintf(stderr, "NOT ENOUGH SPACE for PATH\n"); + return -1; + } + + strcpy(ppath, libdirname); + strcat(ppath, "\\"); + strcat(ppath, pZipBaseName); + return 0; + } + + + /* * returns an error code if initialization fails *************** *** 246,249 **** --- 297,301 ---- int init_with_instance(HMODULE hmod, char *frozen) { + int rc; if (!_LocateScript(hmod)) return 255; *************** *** 251,308 **** if (!_LoadPythonDLL(hmod)) return 255; - if (getenv("PY2EXE_VERBOSE")) { - Py_VerboseFlag = atoi(getenv("PY2EXE_VERBOSE")); - } else - Py_VerboseFlag = 0; - - { - /* If the zip path has any path component, then build our Python - home directory from that. - */ - char *fname; - int lib_dir_len; - pZipBaseName = pScript - 1; - /* let pZipBaseName point to the basename of the zippath */ - while (pZipBaseName > p_script_info->zippath && \ - *(pZipBaseName-1) != '\\') - pZipBaseName--; - /* dirname is the directory of the executable */ - strcpy(libdirname, dirname); - /* length of lib director name */ - lib_dir_len = pZipBaseName-p_script_info->zippath; /* incl. tail slash */ - if (lib_dir_len) { - char *p = libdirname+strlen(libdirname); - *p++ = '\\'; - strncpy(p, p_script_info->zippath, lib_dir_len-1); - p += lib_dir_len-1; - *p++ = '\0'; - } - /* Fully-qualify it */ - GetFullPathName(libdirname, sizeof(libdirname), libdirname, &fname); - } - /* From Barry Scott */ - /* Must not set the PYTHONHOME env var as this prevents - python being used in os.system or os.popen */ - Py_SetPythonHome(libdirname); - - /* - * PYTHONPATH entries will be inserted in front of the - * standard python path. - */ - /* - * We need the module's directory, because zipimport needs zlib.pyd. - * And, of course, the zipfile itself. - */ - { - char buffer[_MAX_PATH * 3 + 256]; - sprintf(buffer, "PYTHONPATH=%s;%s\\%s", - libdirname, libdirname, pZipBaseName); - _putenv (buffer); - } - _putenv ("PYTHONSTARTUP="); - _putenv ("PYTHONOPTIMIZE="); - _putenv ("PYTHONDEBUG="); - _putenv("PYTHONINSPECT="); - if (p_script_info->unbuffered) { #if defined(MS_WINDOWS) || defined(__CYGWIN__) --- 303,306 ---- *************** *** 321,338 **** } Py_NoSiteFlag = 1; Py_OptimizeFlag = p_script_info->optimize; - /* XXX Is this correct? For the dll server code? */ - /* And we should probably change all the above code if Python is already - * initialized */ Py_SetProgramName(modulename); ! Py_Initialize(); ! /* From Barry Scott */ ! /* cause python to calculate the path */ ! Py_GetPath(); /* Set sys.frozen so apps that care can tell. If the caller did pass NULL, sys.frozen will be set zo True. --- 319,341 ---- } + if (getenv("PY2EXE_VERBOSE")) + Py_VerboseFlag = atoi(getenv("PY2EXE_VERBOSE")); + else + Py_VerboseFlag = 0; + Py_IgnoreEnvironmentFlag = 1; Py_NoSiteFlag = 1; Py_OptimizeFlag = p_script_info->optimize; Py_SetProgramName(modulename); ! rc = set_path(); ! if (rc != 0) ! return rc; ! // printf("Path before Py_Initialize(): %s\n", Py_GetPath()); ! ! Py_Initialize(); ! // printf("Path after Py_Initialize(): %s\n", Py_GetPath()); /* Set sys.frozen so apps that care can tell. If the caller did pass NULL, sys.frozen will be set zo True. *************** *** 353,362 **** _TryLoadZlib(hmod); - /* clean up the environment so that os.system - and os.popen processes can run python the normal way */ - /* Hm, actually it would be better to set them to values saved before - changing them ;-) */ - _putenv("PYTHONPATH="); - _putenv("PYTHONVERBOSE="); return 0; } --- 356,359 ---- *************** *** 389,421 **** int run_script(void) { ! int rc; char buffer[_MAX_PATH * 3]; ! snprintf(buffer, sizeof(buffer), ! "import sys; sys.path=[r\"\"\"%s\\%s\"\"\"]; del sys", ! libdirname, pZipBaseName); ! rc = PyRun_SimpleString(buffer); ! if (rc == 0) { ! /* load the code objects to execute */ ! PyObject *m=NULL, *d=NULL, *seq=NULL; ! /* We execute then in the context of '__main__' */ ! m = PyImport_AddModule("__main__"); ! if (m) d = PyModule_GetDict(m); ! if (d) seq = PyMarshal_ReadObjectFromString(pScript, numScriptBytes); ! if (seq) { ! int i, max = PySequence_Length(seq); ! for (i=0;i<max;i++) { ! PyObject *sub = PySequence_GetItem(seq, i); ! if (sub /*&& PyCode_Check(sub) */) { ! PyObject *discard = PyEval_EvalCode((PyCodeObject *)sub, ! d, d); ! if (!discard) { ! PyErr_Print(); ! rc = 255; ! } ! Py_XDECREF(discard); ! /* keep going even if we fail */ } ! Py_XDECREF(sub); } } } --- 386,413 ---- int run_script(void) { ! int rc = 0; char buffer[_MAX_PATH * 3]; ! ! /* load the code objects to execute */ ! PyObject *m=NULL, *d=NULL, *seq=NULL; ! /* We execute then in the context of '__main__' */ ! m = PyImport_AddModule("__main__"); ! if (m) d = PyModule_GetDict(m); ! if (d) seq = PyMarshal_ReadObjectFromString(pScript, numScriptBytes); ! if (seq) { ! int i, max = PySequence_Length(seq); ! for (i=0;i<max;i++) { ! PyObject *sub = PySequence_GetItem(seq, i); ! if (sub /*&& PyCode_Check(sub) */) { ! PyObject *discard = PyEval_EvalCode((PyCodeObject *)sub, ! d, d); ! if (!discard) { ! PyErr_Print(); ! rc = 255; } ! Py_XDECREF(discard); ! /* keep going even if we fail */ } + Py_XDECREF(sub); } } Index: mktab.py =================================================================== RCS file: /cvsroot/py2exe/py2exe/source/mktab.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** mktab.py 7 Sep 2005 06:16:18 -0000 1.4 --- mktab.py 13 Feb 2006 13:17:22 -0000 1.5 *************** *** 57,60 **** --- 57,61 ---- int, Py_NoSiteFlag int, Py_OptimizeFlag + int, Py_IgnoreEnvironmentFlag '''.strip().splitlines() Index: import-tab.h =================================================================== RCS file: /cvsroot/py2exe/py2exe/source/import-tab.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** import-tab.h 6 Sep 2005 19:26:41 -0000 1.3 --- import-tab.h 13 Feb 2006 13:17:22 -0000 1.4 *************** *** 50,51 **** --- 50,52 ---- #define Py_NoSiteFlag (*(int(*))imports[49].proc) #define Py_OptimizeFlag (*(int(*))imports[50].proc) + #define Py_IgnoreEnvironmentFlag (*(int(*))imports[51].proc) |