Create a PythonPath. You almost certainly want to use
modules.theSystemPath, or its aliased methods, rather than creating a new
instance yourself, though.
All parameters are optional, and if unspecified, will use 'system'
equivalents that makes this PythonPath like the global
|Parameters||sysPath||a sys.path-like list to use for this PythonPath, to specify where to
load modules from.
|moduleDict||a sys.modules-like dictionary to use for keeping track of what modules
this PythonPath has loaded.
|sysPathHooks||sys.path_hooks-like list of PEP-302 path hooks to be used for this
PythonPath, to determie which importers should be used.
|importerCache||a sys.path_importer_cache-like list of PEP-302 importers. This will be
used in conjunction with the given sysPathHooks.
|moduleLoader||a module loader function which takes a string and returns a module.
That is to say, it is like |
|sysPathFactory||a 0-argument callable which returns the current value of a sys.path-like
list of strings. Specify either this, or sysPath, not both. This
alternative interface is provided because the way the Python import
mechanism works, you can re-bind the 'sys.path' name and that is what is
used for current imports, so it must be a factory rather than a value to
deal with modification by rebinding rather than modification by mutation.
Note: it is not recommended to rebind sys.path. Although this mechanism
can deal with that, it is a subtle point which some tools that it is easy
for tools which interact with sys.path to miss.