Peter Hansen wrote: > [EMAIL PROTECTED] wrote: > > also the function os.cwd() > > ;-) > > I'm not sure how os.cwd() helps, but generally the solution to this > starts with pointing out that sys.argv[0] usually contains the path to > the main script, which is often the answer needed. > > Recipes have been posted in the past which cover a wider range of > situations, including when running as a "py2exe'd" program (i.e. > "frozen"), as the simple solution doesn't cover all cases. > > Checking the archives would probably help. >
There are a couple of functions from `pathutils <http://www.voidspace.org.uk/python/pathutils.html>`_ that do this (originally supplied by Thomas Heller I believe) : def main_is_frozen(): """Return ``True`` if we're running from a frozen program.""" import imp return ( # new py2exe hasattr(sys, "frozen") or # tools/freeze imp.is_frozen("__main__")) def get_main_dir(): """Return the script directory - whether we're frozen or not.""" if main_is_frozen(): return os.path.abspath(os.path.dirname(sys.executable)) return os.path.abspath(os.path.dirname(sys.argv[0])) just call ``get_main_dir()`` and it works consistently with py2exe'd scripts and normal scripts. All the best, Fuzzyman http://www.voidspace.org.uk/python/index.shtml > -Peter -- http://mail.python.org/mailman/listinfo/python-list