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

Reply via email to