Manipulating sys.path

T

Thomas

Hi all,

I want to manipulate sys.path outside of PYTHONPATH (environment) and
sys.path.append() (programmatically).

A bit of background:
We're maintaining a small application that includes a couple of Python
scripts. Over time, a decent amount of code has been forked into
modules, so the overall file system layout of our kit looks like this:

tool/
bin/
prog1.py
prog2.py
...
lib/
pack1/
mod1.py
mod2.py
...

The issue I have is that I want to add the 'lib' directory to the module
search path so that our programs prog1.py, prog2.py,... can find the
modules pack1.mod1, pack1.mod2, ... But I want to keep this out of the
program's source code which rules out statements like
'sys.path.insert(0, "../lib")'. We also want to be minimal-invasive for
the hosting environment, so no copying of 'lib' into the standard Python
lib directories (like /usr/local/lib/python2.5/site-packages etc.), nor
forcing the user to change his PYTHONPATH shell environment. It should
be solved locally in our kit's directory tree.

I was thinking about putting code into a 'bin/__init__.py' file but
that's only working for modules and not for executable scripts, right?!
Then I came across the '.pth' files, but unfortunately they only seem to
work in some standard paths (like the before mentioned
/usr/local/lib/python2.5/site-packages), and not in the script directory
(like 'bin' in my case) which is automatically added to sys.path.

Can anybody think of something that could be of help here?

Thanks,
Thomas
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,967
Messages
2,570,148
Members
46,694
Latest member
LetaCadwal

Latest Threads

Top