Sitemap

Running Installer
Python Archives
Standalones
The MEInc.Dist package
Frequently Asked Questions
Extensions

Pmw

Pmw comes with a script named bundlepmw in the bin directory. If you follow the instructions in that script, you'll end up with a module named Pmw.py. Ensure that Builder finds that module and not the development package.

Christian Robottom passes on these tips: Use the bundlepmw.py script that comes inside Pmw/Pmw_VERSION/bin/ to generate a standalone Pmw.py. If you're not using BLT or Pmw's color support, pass on -noblt and -nocolor (otherwise, you'll need to include the Blt and Color support files as well). Please note that bundlepmw doesn't bundle _all_ Pmw widgets by default: MainMenuBar is an example of a bar that isn't. Edit bundlepmw.py's file = [] list and add the widgets you need.

Place the bundled Pmw.py file in the same directory as your script and check builder.log to see if builder's using the right one.

Win32pipe

On Win9x, win32pipe needs special help. Again, from Christian Robottom: win32pipe uses a helper executable that lives in PYTHON_ROOT/win32/, called win32popenWin9x.exe (for win98; this could possibly be different for WinNT [WinNT / Win2k don't need this helper app - Gordon]). This must be distributed and placed in the same directory as your standalone script. Without this file your application will fail your popen() call.

Apart from that, win32pipe needs PyWinTypesXX and win32api; they are by default excluded in your .cfg file. Remove them from the excludes line, rebuild, and all will be spiffy.

cPickle

cPickle uses PyImport_ImportModule to import a couple Python modules from C. This circumvents imputil (although in Py2.2 this should be fixed). The easy answer is just to import string and copy_reg yourself, before importing cPickle. That way, cPickle will find them already in sys.modules.

shelve

Shelve finds a compatible dbm by using anydbm, which uses __import__. Modulefinder doesn't follow __import__. The easy answer is to import dbhash (or whichever implementation module you want) before the import of shelve. You could also use the include directive in the config file (in the PYZ section).

Numeric

According to Gary Herron: The 'import Numeric' statment imports _numpy.pyd, but this is not caught by builder.py. Add misc= C:\Program Files\Python\Numeric\_numpy.pyd in the appropriate target of the cfg file.

PIL (Python Imaging Library)

To get the entire PIL package, put a "directories="+path_to_PIL in the APPZLIB section. Or, to be more selective, follow Jeff Kunce's instructions:

In my top level script, I added:

                import ImageFile, JpegImagePlugin
            
These are the files that _imaging.dll needs, and importing them explicitly gets them bundled correctly into the installer.

If I needed other image types, I would need to import their respective plugin modules as well.

Gadfly

Make sure that the marshalled sql grammar file is included (as a binary resource, in the outermost package).

copyright 1999-2001
McMillan Enterprises, Inc.