Panda3D

Loading...
Searching...
No Matches
Classes | Functions | Variables
direct.showbase.VFSImporter Namespace Reference

## Classes
class | VFSImporter
class | VFSLoader
class | VFSSharedImporter
class | VFSSharedLoader

## Functions
| register ()
| reloadSharedPackage (mod)
| reloadSharedPackages ()

## Variables
bool | _registered = False
list | compiledExtensions = [ 'pyc', 'pyo' ]
dict | sharedPackages = {}
| The sharedPackages dictionary lists all of the "shared packages", special Python packages that automatically span multiple directories via magic in the VFSImporter.
| vfs = VirtualFileSystem.getGlobalPtr()

## Detailed Description

    The VFS importer allows importing Python modules from Panda3D's virtual
    file system, through Python's standard import mechanism.

    Calling the :func:`register()` function to register the import hooks should be
    sufficient to enable this functionality.

## Function Documentation

## ◆ register()

register | ( |  | ) |

     Register the VFSImporter on the path_hooks, if it has not
    already been registered, so that future Python import statements
    will vector through here (and therefore will take advantage of
    Panda's virtual file system).

## ◆ reloadSharedPackage()

reloadSharedPackage | ( |  | mod | ) |

     Reloads the specific module as a shared package, adding any
    new directories that might have appeared on the search path.

## ◆ reloadSharedPackages()

reloadSharedPackages | ( |  | ) |

     Walks through the sharedPackages list, and forces a reload of
    any modules on that list that have already been loaded.  This
    allows new directories to be added to the search path.

## Variable Documentation

## ◆ _registered

bool _registered = False
| protected

## ◆ compiledExtensions

list compiledExtensions = [ 'pyc', 'pyo' ]

## ◆ sharedPackages

dict sharedPackages = {}

The sharedPackages dictionary lists all of the "shared packages", special Python packages that automatically span multiple directories via magic in the VFSImporter.

You can make a package "shared" simply by adding its name into this dictionary (and then calling reloadSharedPackages() if it's already been imported).

When a package name is in this dictionary at import time, all instances of the package are located along sys.path, and merged into a single Python module with a path setting that represents the union. Thus, you can have a direct.showbase.foo in your own application, and loading it won't shadow the system direct.showbase.ShowBase which is in a different directory on disk.

## ◆ vfs

vfs = VirtualFileSystem.getGlobalPtr()