define module in non-standard location?
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Sun Oct 16 23:55:29 EDT 2011
On Sun, 16 Oct 2011 19:43:20 -0700, Shane wrote:
> Normally if one has a code set under a directory "top_level" like this:
>
> top_level:
> __main__.py
> a
> __init__.py
> b
> __init__.py
>
> then this directory structure is naturally satisfies this line in
> __main__.py:
>
>>import a.b
>
> But support, for some stupid reason --- say a.b is user defined code ---
> that I want
> to locate modules a and a.b somewhere else under another directory
> "other_top_level".
You mean like this?
top_level/
__main__.py
other_top_level/
a/
__init__.py
b/
__init__.py
> What would the line "import a.b" in __main__,py be replaced by?
Make sure other_top_level is in your PYTHONPATH, and then just use
"import a.b" as before.
Either use your shell to do something like this:
export PYTHONPATH=other_top_level:$PYTHONPATH
(that's using bash syntax, other shells may need something different), or
in __main__.py do this:
import sys
sys.path.append(other_top_level)
--
Steven
More information about the Python-list
mailing list