From: John C. <joh...@nt...> - 2006-02-25 18:45:06
|
Jimmy, Thanks for your help. Your advice was spot on and my database program is now movable. Regards, John. -----Original Message----- From: Jimmy Retzlaff [mailto:ji...@re...] Sent: 19 February 2006 15:42 To: joh...@nt...; py2...@li... Subject: RE: [Py2exe-users] Gadfly Database Problems John Corry wrote: > I have a python program that accesses glade and a gadfly database. The > program works fine on my computer but I want to compile it so that I can > put > it on other computers without having to install everything that my > computer > has. > > I have had a go at compiling it using py2exe. I have used the standard > setup.py from the example. I have listed the glade file and my two > database > files as my data_files. The compiler runs and I get the dist + build > folders. When I double click the exe, the program loads and runs ok. > When > I get to the point of the program where the program accesses the database, > the program freezes. > > The error log message says: > > Traceback (most recent call last): > File "shopcard.py", line 188, in callback4 > File "shopcard.py", line 228, in calc > File "gadfly\dbapi20.pyo", line 26, in connect > File "gadfly\dbapi20.pyo", line 46, in __init__ > File "gadfly\database.pyo", line 27, in __init__ > File "gadfly\sql.pyo", line 16, in getSQL > ImportError: Couldn't find sql_mar.py - has setup.py been run? > > Callback4 is a function which calls the calc function. The calc function > tries to connect to the database files. I can see the database files in > the > dist folder. > > Are there other files which I have to manually copy into the dist folder > such as the sql_mar.py? It appears that gadfly imports that file dynamically using __import__ (a technique that py2exe does not detect). Probably the simplest way to make sure you get everything is using the packages option. For example, the following script packs up gadfly's main test script up so that it successfully runs and passes all tests: from distutils.core import setup import py2exe setup( console=['test_gadfly.py'], options={ 'py2exe': { 'packages': ['gadfly'], } }, ) Jimmy |