Application Data (bpy.app)

This module contains application values that remain unchanged during runtime.

bpy.app.autoexec_fail

Undocumented, consider contributing.

bpy.app.autoexec_fail_message

Undocumented, consider contributing.

bpy.app.autoexec_fail_quiet

Undocumented, consider contributing.

bpy.app.binary_path

The location of Blender’s executable, useful for utilities that open new instances. Read-only unless Blender is built as a Python module - in this case the value is an empty string which script authors may point to a Blender binary.

bpy.app.debug

Boolean, for debug info (started with --debug / --debug-* matching this attribute name)

bpy.app.debug_depsgraph

Boolean, for debug info (started with --debug / --debug-* matching this attribute name)

bpy.app.debug_depsgraph_build

Boolean, for debug info (started with --debug / --debug-* matching this attribute name)

bpy.app.debug_depsgraph_eval

Boolean, for debug info (started with --debug / --debug-* matching this attribute name)

bpy.app.debug_depsgraph_pretty

Boolean, for debug info (started with --debug / --debug-* matching this attribute name)

bpy.app.debug_depsgraph_tag

Boolean, for debug info (started with --debug / --debug-* matching this attribute name)

bpy.app.debug_depsgraph_time

Boolean, for debug info (started with --debug / --debug-* matching this attribute name)

bpy.app.debug_events

Boolean, for debug info (started with --debug / --debug-* matching this attribute name)

bpy.app.debug_ffmpeg

Boolean, for debug info (started with --debug / --debug-* matching this attribute name)

bpy.app.debug_freestyle

Boolean, for debug info (started with --debug / --debug-* matching this attribute name)

bpy.app.debug_handlers

Boolean, for debug info (started with --debug / --debug-* matching this attribute name)

bpy.app.debug_io

Boolean, for debug info (started with --debug / --debug-* matching this attribute name)

bpy.app.debug_python

Boolean, for debug info (started with --debug / --debug-* matching this attribute name)

bpy.app.debug_simdata

Boolean, for debug info (started with --debug / --debug-* matching this attribute name)

bpy.app.debug_value

Short, number which can be set to non-zero values for testing purposes

bpy.app.debug_wm

Boolean, for debug info (started with --debug / --debug-* matching this attribute name)

bpy.app.driver_namespace

Dictionary for drivers namespace, editable in-place, reset on file load (read-only)

File Loading & Order of Initialization

Since drivers may be evaluated immediately after loading a blend-file it is necessary to ensure the driver name-space is initialized beforehand.

This can be done by registering text data-blocks to execute on startup, which executes the scripts before drivers are evaluated. See Text -> Register from Blender’s text editor.

Hint

You may prefer to use external files instead of Blender’s text-blocks. This can be done using a text-block which executes an external file.

This example runs driver_namespace.py located in the same directory as the text-blocks blend-file:

import os
import bpy
blend_dir = os.path.normalize(os.path.join(__file__, "..", ".."))
bpy.utils.execfile(os.path.join(blend_dir, "driver_namespace.py"))

Using __file__ ensures the text resolves to the expected path even when library-linked from another file.

Other methods of populating the drivers name-space can be made to work but tend to be error prone:

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.

It is possible to run a script via the --python command line argument, before the blend file. This can register a load-post handler (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.

bpy.app.render_icon_size

Reference size for icon/preview renders (read-only)

bpy.app.render_preview_size

Reference size for icon/preview renders (read-only)

bpy.app.tempdir

String, the temp directory used by blender (read-only)

bpy.app.use_event_simulate

Boolean, for application behavior (started with --enable-* matching this attribute name)

bpy.app.use_userpref_skip_save_on_exit

Boolean, for application behavior (started with --enable-* matching this attribute name)

bpy.app.background

Boolean, True when blender is running without a user interface (started with -b)

bpy.app.factory_startup

Boolean, True when blender is running with –factory-startup)

bpy.app.build_branch

The branch this blender instance was built from

bpy.app.build_cflags

C compiler flags

bpy.app.build_commit_date

The date of commit this blender instance was built

bpy.app.build_commit_time

The time of commit this blender instance was built

bpy.app.build_cxxflags

C++ compiler flags

bpy.app.build_date

The date this blender instance was built

bpy.app.build_hash

The commit hash this blender instance was built with

bpy.app.build_linkflags

Binary linking flags

bpy.app.build_platform

The platform this blender instance was built for

bpy.app.build_system

Build system used

bpy.app.build_time

The time this blender instance was built

bpy.app.build_type

The type of build (Release, Debug)

bpy.app.build_commit_timestamp

The unix timestamp of commit this blender instance was built

bpy.app.version_cycle

The release status of this build alpha/beta/rc/release

bpy.app.version_string

The Blender version formatted as a string

bpy.app.version

The Blender version as a tuple of 3 numbers. eg. (2, 83, 1)

bpy.app.version_file

The Blender version, as a tuple, last used to save a .blend file, compatible with bpy.data.version. This value should be used for handling compatibility changes between Blender versions

bpy.app.alembic

Constant value bpy.app.alembic(supported=True, version=(1, 8, 3), version_string=’ 1, 8, 3’)

bpy.app.build_options

Constant value bpy.app.build_options(bullet=True, codec_avi=True, codec_ffmpeg=True, codec_sndfile=True, compositor_cpu=True, cycles=True, cycles_osl=True, freestyle=True, image_cineon=True, image_dds=True, image_hdr=True, image_openexr=True, image_openjpeg=True, image_tiff=True, input_ndof=True, audaspace=True, international=True, openal=True, opensubdiv=True, sdl=True, sdl_dynload=True, coreaudio=False, jack=True, pulseaudio=True, wasapi=False, libmv=True, mod_oceansim=True, mod_remesh=True, collada=True, io_wavefront_obj=True, io_ply=True, io_stl=True, io_gpencil=True, opencolorio=True, openmp=True, openvdb=True, alembic=True, usd=True, fluid=True, xr_openxr=True, potrace=True, pugixml=True, haru=True)

bpy.app.ffmpeg

Constant value bpy.app.ffmpeg(supported=True, avcodec_version=(60, 3, 100), avcodec_version_string=’60, 3, 100’, avdevice_version=(60, 1, 100), avdevice_version_string=’60, 1, 100’, avformat_version=(60, 3, 100), avformat_version_string=’60, 3, 100’, avutil_version=(58, 2, 100), avutil_version_string=’58, 2, 100’, swscale_version=(7, 1, 100), swscale_version_string=’ 7, 1, 100’)

bpy.app.ocio

Constant value bpy.app.ocio(supported=True, version=(2, 2, 0), version_string=’ 2, 2, 0’)

bpy.app.oiio

Constant value bpy.app.oiio(supported=True, version=(2, 4, 15), version_string=’ 2, 4, 15’)

bpy.app.opensubdiv

Constant value bpy.app.opensubdiv(supported=True, version=(3, 5, 0), version_string=’ 3, 5, 0’)

bpy.app.openvdb

Constant value bpy.app.openvdb(supported=True, version=(10, 0, 0), version_string=’10, 0, 0’)

bpy.app.sdl

Constant value bpy.app.sdl(supported=True, version=(0, 0, 0), version_string=’Unknown’, available=False)

bpy.app.usd

Constant value bpy.app.usd(supported=True, version=(0, 23, 5), version_string=’ 0, 23, 5’)

static bpy.app.help_text(all=False)

Return the help text as a string.

Parameters:

all (bool) – Return all arguments, even those which aren’t available for the current platform.

static bpy.app.is_job_running(job_type)

Check whether a job of the given type is running.

Parameters:

job_type (str) – job type in Wm Job Type Items.

Returns:

Whether a job of the given type is currently running.

Return type:

bool.