Hi Umang,

On Sat, Jan 30, 2010 at 5:24 AM, Umang <umang...@gmail.com> wrote:
>
>    foo-1.2.3.tar.gz
>    foo-1.2.3/
>    foo-1.2.3/bin/
>    foo-1.2.3/bin/foo
>    foo-1.2.3/foolib/
>    foo-1.2.3/foolib/__init__.py
>    ...
>
> Now in foo-1.2.3/bin/foo how do I import foolib.wibble so that an installed
> foo (i.e. /usr/bin/foo after a "setup.py install") can import from the
> installed module/package (somewhere inside /usr/lib/) while a foo extracted
> from a source tarball (foo-1.2.3/bin/foo) can import a module/package from
> the extracted package (foo-1.2.3/foolib/wibble.py).
>

The PyGTK project LottaNZB has the very same source tarball structure and
the problem you describe has been solved as follows:

Add an executable script "run-foo.sh" to the root directory foo-1.2.3 with
the following content:

#!/bin/sh
FOOPATH=`dirname $0`
PYTHONPATH="$PYTHONPATH:$FOOPATH" exec $FOOPATH/bin/foo $*

This allows you to run 'foo' locally using 'run-foo.sh' without having to
modify sys.path in bin/foo. It's probably not the most elegant approach, but
it worked well for me.

Regards,
Severin

Reply via email to