Hello,

Guy Hulbert wrote:
> appending lib to everything is really ugly* ... is it because
> 
> ./appname.py
> ./appname/__init__.py
> 
> fails to work ?

Yes! If you import appname from the appname.py, it will try to import
itself ! What I do right now is the following :

./scripts/appname
./appname/__init__.py
./appname/runner.py

And then in /scripts/appname (the executable) I put:

SCRIPTS_DIR = "scripts"
def _is_in_devel():
    d = os.path.split(os.path.dirname(os.path.abspath(__file__)))[1]
    return d == SCRIPTS_DIR
if _is_in_devel():
    d = os.path.split(os.path.dirname(os.path.abspath(__file__)))[0]
    sys.path.insert(0, d)
    os.environ["PATH"] += ":%s" % (os.path.join(d, SCRIPTS_DIR))
    from appname import runner
    runner.run()

I for inspired by pitivi, which does that. (thanks Ed!) For the runner
thing, I got inspired from Twisted.

I am not saying this is perfect, but it works well with the limitations
of the packaging in importing mechanism in Python.

Regards,
Alexandre Quessy
http://alexandre.quessy.net


-- 
To UNSUBSCRIBE, email to debian-python-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to