From: Larry B. <lar...@we...> - 2007-05-18 19:03:03
|
Larry Bates wrote: > Thomas Heller wrote: >> Werner F. Bruhin schrieb: >>> I build two exe's, both are windows, I think I got this out of a example >>> and maybe this can be adapted to your needs. >>> >>> Code snippet: >>> >>> app1 = MetaBase( >>> script = "yourscript1.py", >>> other_resources = [(RT_MANIFEST, 1, manifest_template % >>> dict(prog="Whatever name"))], >>> icon_resources = [(1, r"images/youricon.ico")], >>> dest_base = r"prog\app1") >>> >>> app2 = MetaBase( >>> script = "yourscript2.py", >>> other_resources = [(RT_MANIFEST, 1, manifest_template % >>> dict(prog="whatever name 2"))], >>> icon_resources = [(1, r"images/youricon2.ico")], >>> dest_base = r"prog\app2") >>> >>> setup( >>> classifiers = ["Copyright:: whoever", >>> ... >>> "Natural Language :: English"], >>> windows = [app1, app2], >>> options = options, >>> zipfile = zipfile, >>> data_files = [( >>> ... >>> >> This is the recommended way. If you have to build several executables, comservers, and so on >> you should build them all in ONE setup script. This way the library.zip file (however it is named) >> is shared between all of them. >> I even build both GUI and CONSOLE versions of some programs so that I am able to see debug messages >> printed by them. >> >> Thomas >> >> >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by DB2 Express >> Download DB2 Express C - the FREE version of DB2 express and take >> control of your XML. No limits. Just data. Click to get it now. >> http://sourceforge.net/powerbar/db2/ > > Ok, so far I've come up with the following script, which py2exe seems > fine with but it creates a COM object that doesn't work. I see now that > you must create all three programs in a single run of py2exe to accomplish > what I want. > > from distutils.core import setup > import py2exe > # > # Don't pull in all this MFC stuff used by the makepy UI (excludes) > # > options=dict(py2exe=dict(excludes="pywin,pywin.dialogs,pywin.dialogs.list,win32ui", > packages=["xmlcore"], > dll_excludes=["tcl84.dll", "tk84.dll"], > compressed=0, > bundle_files=3)) > > > testwsAPIcom=dict(script="testwsAPIcom.py", > icon_resources=[(1,"server_client_exchange.ico")], > version="1.0.0" > ) > > SysTrayIcon=dict(script="SysTrayIcon.py", > icon_resources=[(1,"safe_into.ico")], > version="1.0.0" > ) > > wsAPICOM = dict(modules=["wsAPICOM"], > icon_resources=[(1, "safe.ico")], > create_exe=False, > create_dll=True, > author="Larry Bates", > author_email="lar...@sy...", > company_name="Syscon, Inc.", > copyright="c 2007, Syscon, Inc.", > version="1.0.0" > ) > > setup(console=[testwsAPIcom], > windows=[SysTrayIcon], > com_server=[wsAPICOM], > options = options, > ) > > Any suggestions? > > Larry > > Ok, I figured it out. I was excluding some items that were required in other programs (pywin,pywin.dialogs,pywin.dialogs.list,win32ui). When I removed the exclude, it is working now. Thanks everyone for pushing me into the right direction. I will contend that this type of information is nowhere to be found on the website or in any document that I've read. -Larry |