[Tutor] Py2exe Problem

Alberto Troiano albertito_g at hotmail.com
Fri Jun 3 15:15:16 CEST 2005


Thanks for the docs
I finally was able to make a good compilation
After I freezed Pmw into pmw.py I had to restart Python (Ctrl-Alt-Del and 
terminate all python process that were running, by the way why they still 
stay there and how can I terminate them?)
and only then the compilation didn't include the Pmw library inside the dist 
folder that py2exe creates. But I made a compilation a few months before (I 
didn't remember how to compile with Pmw) and I remembered that I had to copy 
inside the dist folder all the images I was using and of course de pmw.py 
and pmwblt.py and pmwcolor.py also

This is in case you want to make a compilation and you have the same 
problems I had

Best Regards to all

>From: jfouhy at paradise.net.nz
>To: "tutor at python.org" <tutor at python.org>
>Subject: Re: [Tutor] Py2exe Problem
>Date: Fri, 03 Jun 2005 10:06:18 +1200 (NZST)
>Quoting Alberto Troiano <albertito_g at hotmail.com>:
> > I'm having a problem with Py2exe.
> > I created the executable but when I try to execute it it gives the
> > following
> > error:
> >
> > Traceback (most recent call last):
> >  File "NovusExtension.pyw", line 8, in ?
> >  File "Pmw\__init__.pyc", line 28, in ?
> > WindowsError: [Errno 3] El sistema no puede hallar la ruta especificada:
> >
> > 'C:\\Documents and
> > Settings\\percy.IMPOR-FERNANDO\\Escritorio\\NovExt\\dist\\library.zip\
> > \Pmw/*.*'
>It might help if you translated that error message :-)
>But, I will make one guess, since I see the problem is to do with Pmw:
> >From this page: http://pmw.sourceforge.net/doc/dynamicloader.html
>  When Pmw is first imported, an instance of PmwLoader is created and 
>placed into
>sys.modules['Pmw']. From that point on, any reference to attributes of the 
>'module' is handled by the loader. The real Pmw package is stored in
>  Freezing Pmw
>Since the dynamic loader requires that Pmw be installed at run time, it can 
>be used when freezing Pmw. In this case, a single module containing all Pmw 
>is required, which can then be frozen with the rest of the application's
>modules. The bundlepmw.py script in the Pmw bin directory can be used to 
>such a file. This script concatenates (almost) all Pmw megawidget files 
>into a
>single file, Pmw.py, which it writes to the current directory. The script 
>called like this:
>  bundlepmw.py [-noblt] [-nocolor] /path/to/Pmw/Pmw_X_X_X/lib
>The last argument should be the path to the lib directory of the required
>version of Pmw. By default, the Pmw.py file imports the PmwBlt and PmwColor
>modules and so, to freeze an application using Pmw, you will need to copy 
>files PmwBlt.py and PmwColor.py to the application directory before 
>If you are sure that your application does not use any of the Pmw.Blt or
>Pmw.Color functions, you can use the -noblt or -nocolor options. In this 
>Pmw.py will be modified so that it does not import these module(s) and so 
>not need to be included when freezing the application.
>If your application only uses a few Pmw megawidgets, you can remove the
>references to the usused ones in the files list in the bundlepmw.py code. 
>make the change, take a copy of the script and modify it. This will make 
>Pmw.py file smaller. However, be sure that you do not delete megawidgets 
>are components or base classes of megawidgets that you use.
>If you haven't done this, you will need to, otherwise Pmw won't work with 
>Tutor maillist  -  Tutor at python.org


More information about the Tutor mailing list