By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,772 Members | 906 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,772 IT Pros & Developers. It's quick & easy.

specify arbitrary library directory directly in code?

P: n/a
### 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
Share this Question
Share on Google+
1 Reply


P: n/a
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.