blender/doc/python_api/examples/bpy.app.driver_namespace.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

20 lines
1.1 KiB
Python
Raw Normal View History

"""
File Loading & Order of Initialization
Since drivers are evaluated immediately after loading a blend-file, using the ``--python`` command line argument
to populate name-space often fails to achieve the desired goal because the initial evaluation will lookup a function
that doesn't exist yet, marking the driver as invalid - preventing further evaluation.
Populating the driver name-space before the blend-file loads also doesn't work
since opening a file clears the name-space.
The driver name-space should be populated for newly loaded files using text-block registration.
Text blocks may be marked to execute on startup from the text editor *Text -> Register*.
Scripts that are registered will execute after a blend-file loads & before driver evaluation.
It's also possible to use run a script via the ``--python`` command line argument, before the blend file.
This can register a load-post handler (:mod:`bpy.app.handlers.load_post`) that initialized the name-space.
While this works for background tasks it has the downside that opening the file from the file selector
won't setup the name-space.
"""