'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 L{theSystemPath}
instance.
@param sysPath: a sys.path-like list to use for this PythonPath, to
specify where to load modules from.
@param moduleDict: a sys.modules-like dictionary to use for keeping
track of what modules this PythonPath has loaded.
@param sysPathHooks: sys.path_hooks-like list of PEP-302 path hooks to
be used for this PythonPath, to determie which importers should be
used.
@param importerCache: a sys.path_importer_cache-like list of PEP-302
importers.  This will be used in conjunction with the given
sysPathHooks.
@param moduleLoader: a module loader function which takes a string and
returns a module.  That is to say, it is like L{namedAny} - *not* like
L{__import__}.
@param 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.'

def __init__(self, sysPath=None, moduleDict=sys.modules, sysPathHooks=sys.path_hooks, importerCache=sys.path_importer_cache, moduleLoader=namedAny, sysPathFactory=None):

    if (sysPath is not None):
        sysPathFactory = (lambda : sysPath)
    elif (sysPathFactory is None):
        sysPathFactory = _defaultSysPathFactory
    self._sysPathFactory = sysPathFactory
    self._sysPath = sysPath
    self.moduleDict = moduleDict
    self.sysPathHooks = sysPathHooks
    self.importerCache = importerCache
    self.moduleLoader = moduleLoader
