Stephen Thorne <[EMAIL PROTECTED]> writes: > On 10 Mar 2005 06:02:22 -0800, [EMAIL PROTECTED] > <[EMAIL PROTECTED]> wrote: >> Hi All, >> >> I've been trying to come up with an elegant solution to this problem, >> but can't seem to think of anything better than my solution below. >> >> I have a Python program that needs to be converted into an executable. >> The problem is that I have a "config" template file that I've been >> using to modify initialization constants such as paths, global >> variables, structures, etc. Obviously, once I convert my code into an >> executable I can no longer read/write to my configuration file. >> >> My solution was to convert this config file into a standard ASCII text >> document and have Python parse it for user set variables. This doesn't >> seem like the most elegant of solutions; however, and I thought others >> must have implemented a better way than this. >> >> Anyone have a better solution for this problem? > > Package config.py outside the zipfile containing all the python bytecode. > > 1) Remove config.pyc from dist\Library.zip as the last thing you do in > your setup.py.
You can save this step by using the exclude module option of py2exe. > 2) As the first thing you do in main.py (or whatever your main is), do: > > import sys, os > try: > import config > except ImportError: > # We're in a py2exe, so we'll append an element to the (one element) > # sys.path which points to Library.zip, to the directory that contains > # Library.zip, allowing us to import config.py > sys.path.append(os.path.split(sys.path[0])) > import config > > 3) Put in your setup.py > > setug( .... > data=[('.', ['config.py'])]# Package config.py seperately. > ) > > > Regards, > Stephen Thorne -- http://mail.python.org/mailman/listinfo/python-list