From: Larry B. <lar...@we...> - 2007-05-12 18:59:16
|
I have an application that consists of COM object, console application and windows application. If I build all three into the same dist/ directory my COM object doesn't work (nozip, bundle=3). If I choose (nozip, bundle=1 for the windows application everything works. The order of builds also seems to affect what doesn't work. Has anyone else seen this type of behavior? Mark Hammond says that he does this with no problems in his SpamBayes builds, but I continue to have problems. Thanks in advance, Larry Bates |
From: Harald A. M. <har...@gm...> - 2007-05-13 08:34:32
|
Larry, I had often very strange problems with my py2exe builds. Especially that "the order of builds" sounds very common. They all vanished when I cleared the build-directory between runs of py2exe= . So my current build-systems starts with "remove all below ./build" My process has become much more robust. Best wishes, Harald On 5/12/07, Larry Bates <lar...@we...> wrote: > I have an application that consists of COM object, > console application and windows application. If I build > all three into the same dist/ directory my COM object > doesn't work (nozip, bundle=3D3). If I choose (nozip, bundle=3D1 > for the windows application everything works. The order > of builds also seems to affect what doesn't work. Has > anyone else seen this type of behavior? > > Mark Hammond says that he does this with no problems in > his SpamBayes builds, but I continue to have problems. > > Thanks in advance, > Larry Bates > > > ------------------------------------------------------------------------- > 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/ > _______________________________________________ > Py2exe-users mailing list > Py2...@li... > https://lists.sourceforge.net/lists/listinfo/py2exe-users > > --=20 GHUM Harald Massa persuadere et programmare Harald Armin Massa Reinsburgstra=DFe 202b 70197 Stuttgart 0173/9409607 fx 01212-5-13695179 - Python: the only language with more web frameworks than keywords. |
From: Larry B. <lar...@we...> - 2007-05-14 19:46:26
|
Harald Armin Massa wrote: > Larry, > > I had often very strange problems with my py2exe builds. Especially > that "the order of builds" sounds very common. > > They all vanished when I cleared the build-directory between runs of py2exe. > > So my current build-systems starts with "remove all below ./build" > > My process has become much more robust. > > Best wishes, > > Harald > > > On 5/12/07, Larry Bates <lar...@we...> wrote: >> I have an application that consists of COM object, >> console application and windows application. If I build >> all three into the same dist/ directory my COM object >> doesn't work (nozip, bundle=3). If I choose (nozip, bundle=1 >> for the windows application everything works. The order >> of builds also seems to affect what doesn't work. Has >> anyone else seen this type of behavior? >> >> Mark Hammond says that he does this with no problems in >> his SpamBayes builds, but I continue to have problems. >> >> Thanks in advance, >> Larry Bates >> >> >> ------------------------------------------------------------------------- >> 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/ >> _______________________________________________ >> Py2exe-users mailing list >> Py2...@li... >> https://lists.sourceforge.net/lists/listinfo/py2exe-users >> >> > > Great suggestion. Unfortunately it didn't fix my problem. The error message that gets written t the log file is: F:\larry\WebSafe\Python\WSapiCOM\dist>type systrayicon.exe.log Traceback (most recent call last): File "SysTrayIcon.py", line 16, in <module> ImportError: No module named win32gui_struct The order is: testwsAPIcom.py (console app) SysTrayIcon.py (windows app) wsAPICOM.py (COM object) If I change it so that systrayicon.exe is created with no zip and bundle=1 it works perfectly. This includes a complete copy of all the modules and python25.dll in the .exe which makes it really large. If I manually do: python SysTrayIcon.py py2exe the .exe that is created in dist\ runs perfectly but then COM object is hosed and can't be registered by regsrv32. If I manually do: python wsAPICOMSetup.py py2exe the COM .DLL that is created can be registered, but the SysTrayIcon.exe won't run any longer. Sort of a CATCH-22. Any thoughts would be greatly appreciated. |
From: Werner F. B. <wer...@fr...> - 2007-05-15 10:13:45
|
Hi Larry, Larry Bates wrote: > Harald Armin Massa wrote: >> Larry, >> >> I had often very strange problems with my py2exe builds. Especially >> that "the order of builds" sounds very common. >> >> They all vanished when I cleared the build-directory between runs of py2exe. >> >> So my current build-systems starts with "remove all below ./build" >> >> My process has become much more robust. I don't think this is needed anymore with py2exe 0.6.6 >> >> Best wishes, >> >> Harald >> >> >> On 5/12/07, Larry Bates <lar...@we...> wrote: >>> I have an application that consists of COM object, >>> console application and windows application. If I build >>> all three into the same dist/ directory my COM object >>> doesn't work (nozip, bundle=3). If I choose (nozip, bundle=1 >>> for the windows application everything works. The order >>> of builds also seems to affect what doesn't work. Has >>> anyone else seen this type of behavior? >>> >>> Mark Hammond says that he does this with no problems in >>> his SpamBayes builds, but I continue to have problems. >>> >>> Thanks in advance, >>> Larry Bates >>> >>> >>> ------------------------------------------------------------------------- >>> 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/ >>> _______________________________________________ >>> Py2exe-users mailing list >>> Py2...@li... >>> https://lists.sourceforge.net/lists/listinfo/py2exe-users >>> >>> >> > > Great suggestion. Unfortunately it didn't fix my problem. > > The error message that gets written t the log file is: > > F:\larry\WebSafe\Python\WSapiCOM\dist>type systrayicon.exe.log > Traceback (most recent call last): > File "SysTrayIcon.py", line 16, in <module> > ImportError: No module named win32gui_struct > > The order is: > > testwsAPIcom.py (console app) > SysTrayIcon.py (windows app) > wsAPICOM.py (COM object) > > If I change it so that systrayicon.exe is created with no zip and > bundle=1 it works perfectly. This includes a complete copy of all > the modules and python25.dll in the .exe which makes it really large. > > If I manually do: > > python SysTrayIcon.py py2exe > > the .exe that is created in dist\ runs > perfectly but then COM object is hosed and can't be registered by > regsrv32. > > If I manually do: > > python wsAPICOMSetup.py py2exe > > the COM .DLL that is created can be registered, but the SysTrayIcon.exe > won't run any longer. Sort of a CATCH-22. > > Any thoughts would be greatly appreciated. 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 = [( ... Werner |
From: Thomas H. <th...@ct...> - 2007-05-15 17:38:29
|
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 |
From: Larry B. <lar...@we...> - 2007-05-18 16:55:37
|
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 |
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 |
From: Larry B. <lar...@we...> - 2007-05-24 23:18:36
|
Larry Bates wrote: > 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 > > Ok, I just THOUGHT this was working properly. It only works with bundle_files=3 If I change to 2 (which is what I would like), the com object won't register. Any ideas? -Larry |