473,231 Members | 1,609 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,231 software developers and data experts.

py2exe service and tool-tray app combined?

"Brad Clements" <bk*@murkworks.com> writes:
Once again I apologize for posting this py2exe question in the ctypes list. ;-)
In the long run, this will be the wrong forum. I suggest
comp.lang.python (or should a py2exe mailing list be created?).
And I'm cc'ing to python-list.

I need to ship a Windows service in py2exe, but I also want a
tool-tray control application (I'll make with venster or win32gui)

Naturally I want to save space. Can I do this with one .exe?

It's not clear from the project page what gets executed when the
service .exe is run without -debug or -register.
Well, you can try it out. But IIRC, nothing useful will happen. The
service tries to start, but cannot because it cannot connect to the
service manager (or something like that).
Can I have a single .py file that has win32serviceutil.ServiceFramework subclass and the usual

if __name__ == "__main__":

And if I do this, how do I handle -register and -unregister?
I don't think so. But look into the C code run_svc.c to be sure.
Also, if anyone knows, I assume services don't run on 9x, so I want to 'simulate' a
service there by having the same .exe do all the work (and appear as a tooltray app),
so here's another reason for having one .exe

Can it be done?
Not sure. Best would be to change the win32all serviceutil framework.
But I'm not sure it makes sense nowadays - win98 is history.

And while I'm bugging the list, one thing I'd like to be able to do is
to split my application files into their own .zip distinct from 'the
python library .zip bolted onto the .exe'.
Well, I have something for you. As time permits, I'm working on a new
py2exe using the zipimport of Python 2.3. Still very much work in
progress, and services are not yet supported, but it's already in CVS in
a sandbox subdirectory.
That is, be able to define a group of .py files or packages that
should go into their own zip file outside the .exe, with that .zip
being inserted into sys.path before the .zip that's built into the
This py2exe (optionally) allows to create a number of console, gui exe
files, together with exe files implementing localserver and inproc COM
servers. The exe (or dll) files only contain the main script, or a
'boot' script for the com and service. The remaining code is loaded from
a shared zipfile.

This way, when I want to ship an 'upgrade' I most likely only need to
send a small .zip file instead of a gigantic .exe

So while declaring which packages or .py files are 'seperate' would be
a pain, I think this would be very handy for making easy-to-web-update


This reminds me of how applications for Visual Smalltalk were
distributed. We had a small exe of only a could of kilobytes, this was
renamed into something like 'myapp.exe'. The classes neede were packed
into .sll files - smalltalk link libraries. And you had to provide a
'myapp.bnd' file which listed all the .sll files needed by 'myapp.exe'.

If you discovered a bug in an .sll file, you could either buid and
distribute a new version of it, or you could create an additional, new
..sll file containing the fixed methods. And you would make sure to list
this new .sll in the myapp.bnd file, before the buggy one. This way the
size of the upgrade could be kept as small as possible.

Now, isn't this '.bnd' file mechanism also a nice idea for py2exe?

Jul 18 '05 #1
2 3650
Thomas Heller <th*****@python.net> schreef:
Also, if anyone knows, I assume services don't run on 9x, so I want
to 'simulate' a service there by having the same .exe do all the work
(and appear as a tooltray app), so here's another reason for having
one .exe

Can it be done?

You don't need a tooltray to create a pseudo service on Win9x.
Not sure. Best would be to change the win32all serviceutil framework.
But I'm not sure it makes sense nowadays - win98 is history.

I know multinational companies that use Win98SE as their standard desktop
OS (one of them upgraded from Win95 last year). As they want to use the
same "environment" in every part of the world and on everything from new P4
desktops to old P2 laptops, Win2K/XP isn't an option...


"Be strict when sending and tolerant when receiving."
RFC 1958 - Architectural Principles of the Internet - section 3.9
Jul 18 '05 #2
(moved from ctypes list)

I've taken a look at the py2exe source. What I'd like to do is combine the
functionality of run_svc.c with that of run_w.c

So for example, could I simply change run_svc.c

int main (int argc, char **argv)
int result;
result = init();
if (result)
return result;

if(1 < argc && !stricmp(argv[1], "-x"))
return start(argc, argv)
return PythonService_main(argc, argv);
Then link in start.c in addition to PythonService.cpp ?

This way, the generated exe could work as both a service, and a regular
application just by passing -x as the first command line option, or some
other well-defined sentinel.

I don't have the win32 source, so it's not easy for me to try. Anyone know
off-hand if start.c exports items that will collide with PythonService.cpp?

Jul 18 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

by: RJS | last post by:
Hi all, I can't get a py2exe compiled app to run with numarray (numarray-0.5.win32- py2.2). Also wxPythonWIN32- and ActivePython-2.2.1-222. In the sample below, commenting out...
by: Thomas Heller | last post by:
I'm currently working on a new version of py2exe, which will require Python 2.3 and later, because it uses the zipimport mechanism. Since py2exe is a distutils extension, and since C compilers...
by: Rene Olsthoorn | last post by:
Dear readers, py2exe has a problem including libxml2. Not at building time, but at runtime. The libxml2.dll cannot be loaded... Is there anyone that NOT has the problem? (and can you drop me...
by: Brian Hlubocky | last post by:
I'm have a fairly simple (in terms of COM) python program that pulls info from an Access database and creates Outlook contacts from that information. It uses wxPython for gui and works without...
by: Peter Teniz | last post by:
hi, i'm trying to generate a service for win XP / win 2k with python2.3.3 + win32all-163 + py2exe0.5.0 (also tried with pywin32-200.win32-py2.3) running the console-script "FBxmlserv.py" with...
by: Werner Merkl | last post by:
Hi, Python is really great, for small to big programs. For my colleagues and some circumstances I sometimes need to "compile" a script using py2exe. Cause I use Windows, I like to use the...
by: Thomas Heller | last post by:
**py2exe 0.5.2** released ========================= py2exe is a Python distutils extension which converts python scripts into executable windows programs, able to run without requiring a python...
by: D | last post by:
I have a simple client/server file server app that I would like to convert to a single .exe. The client is just uses Tkinter and displays a simple GUI. The server has no GUI and just listens for...
by: Maria.Reinhammar | last post by:
I have an app using active_directory.py and the std module asyncore in a Windows Service. Works perfectly! That is, until I try to use py2exe to create a standalone (need to avoid installing the...
by: Isaac Rodriguez | last post by:
Hi, I am looking for feedback from people that has used or still uses Py2Exe. I love to program in python, and I would like to use it to write support tools for our development team, but I...
by: VivesProcSPL | last post by:
Obviously, one of the original purposes of SQL is to make data query processing easy. The language uses many English-like terms and syntax in an effort to make it easy to learn, particularly for...
by: jianzs | last post by:
Introduction Cloud-native applications are conventionally identified as those designed and nurtured on cloud infrastructure. Such applications, rooted in cloud technologies, skillfully benefit from...
by: abbasky | last post by:
### Vandf component communication method one: data sharing ​ Vandf components can achieve data exchange through data sharing, state sharing, events, and other methods. Vandf's data exchange method...
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 7 Feb 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:30 (7.30PM). In this month's session, the creator of the excellent VBE...
by: fareedcanada | last post by:
Hello I am trying to split number on their count. suppose i have 121314151617 (12cnt) then number should be split like 12,13,14,15,16,17 and if 11314151617 (11cnt) then should be split like...
by: stefan129 | last post by:
Hey forum members, I'm exploring options for SSL certificates for multiple domains. Has anyone had experience with multi-domain SSL certificates? Any recommendations on reliable providers or specific...
by: davi5007 | last post by:
Hi, Basically, I am trying to automate a field named TraceabilityNo into a web page from an access form. I've got the serial held in the variable strSearchString. How can I get this into the...
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
by: Aftab Ahmad | last post by:
Hello Experts! I have written a code in MS Access for a cmd called "WhatsApp Message" to open WhatsApp using that very code but the problem is that it gives a popup message everytime I clicked on...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.