468,117 Members | 1,582 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 468,117 developers. It's quick & easy.

specify arbitrary library directory directly in code?

### Background
In [other programming language] it is possible to specify any special
and arbitrary directory (or set of directories) to use as a source
for custom, user-designed modules.

For example, one can do:
### begin script
### (located in ../faa/faa_script.xyz)

### init script
use lib "../foo";
use FooLibModule;

use lib "../fee";
use FeeLibModule;

### run script
print FooLibModule::SayHelloWorld();
print FeeLibModule::SayHelloWorld();

### Initial Findings
After searching around a bit, it appears that python does not have a
built-in mechanism for specifying arbitrary directories as the first
place to look for module code. There are options that allow one to
specify alternate directories, but all these options require changes
to environment variables, or changes (or additions) to the files in
the standard package directories.

But if you define 'built-in mechanism' meaning a change that only
requires modifying the code in 'faa_script.py' ... then there is
no 'built-in mechanism'.

### Question
Are the initial findings correct? If not, can you specify the code
(or the link to the documentation) that specifies how to do what I
am trying to do? If the initial findings are correct, are there any
alternative workarounds to allow faa_script.py to automatically
discover module code in specific sibling directories?

### Constraints
Assume changing or adding environment variables is not an option.
Assume adding files to the standard python module directories is not an

option.
Assume the only option is to change the code in faa_script.py

Oct 28 '05 #1
1 1579
sc******@hotmail.com writes:
### Initial Findings
After searching around a bit, it appears that python does not have a
built-in mechanism for specifying arbitrary directories as the first
place to look for module code. There are options that allow one to
specify alternate directories, but all these options require changes
to environment variables, or changes (or additions) to the files in
the standard package directories.

But if you define 'built-in mechanism' meaning a change that only
requires modifying the code in 'faa_script.py' ... then there is
no 'built-in mechanism'.

### Question
Are the initial findings correct? If not, can you specify the code
(or the link to the documentation) that specifies how to do what I
am trying to do? If the initial findings are correct, are there any
alternative workarounds to allow faa_script.py to automatically
discover module code in specific sibling directories?


No, the findings aren't correct. You can manipulate the search path
directly.

import sys
sys.path.insert(0, "/directory/to/search")

will cause future imports to search /directory/to/search before all
other directories. Likewise, sys.append("/directory/to/search") will
search it after other directories.

Docs here: http://www.python.org/doc/2.2.3/tut/...00000000000000

<mike
--
Mike Meyer <mw*@mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.
Oct 28 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Player | last post: by
3 posts views Thread by Morten | last post: by
3 posts views Thread by DrOrbit | last post: by
6 posts views Thread by ivan.leben | last post: by
1 post views Thread by mypetslug | last post: by
13 posts views Thread by didacticone | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.