specify arbitrary library directory directly in code?

S

scooterm

### 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
 
M

Mike Meyer

### 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/node8.html#SECTION008200000000000000000

<mike
 

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

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,021
Latest member
AkilahJaim

Latest Threads

Top