Docs: add notes on populating bpy.app.driver_namespace
Address issues raised by #114155. Also fix sphinx documentation generation using incorrect identifiers when looking up references from PyStruct types (was looking for `bpy.app.bpy.app.driver_namespace.py`).
This commit is contained in:
19
doc/python_api/examples/bpy.app.driver_namespace.py
Normal file
19
doc/python_api/examples/bpy.app.driver_namespace.py
Normal file
@@ -0,0 +1,19 @@
|
||||
"""
|
||||
File Loading & Order of Initialization
|
||||
Since drivers are evaluated immediately after loading a blend-file,
|
||||
using ``--python`` 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.
|
||||
"""
|
||||
Reference in New Issue
Block a user