amanda calvo
amanda calvo

Reputation: 71

Control blender from python script outside of blender

i have a GUI made in pyside that render a blender file. This GUI have a resolution options to control this before render scene.... i have this code in PyCharm, i need to run this code without open blender.

enter image description here

    if resolutionWidth != 0:                 
        bpy.context.scene.render.resolution_x = resolutionWidth

    if resolutionHeight != 0:
        bpy.context.scene.render.resolution_y = resolutionHeight

    # Override Resolution Scale
    #SCALE = batchRender_UI.resolution_scaleUI()
    if SCALE != 0:                      
        bpy.context.scene.render.resolution_percentage = SCALE

Upvotes: 5

Views: 3487

Answers (2)

Claude
Claude

Reputation: 9980

In case you want more interactive control over Blender, you can build Blender as a python module.

This is a build option to be able to import blender into python and access its modules. [...] This is mainly limited to features which can be usable in background mode, so you cant for instance do OpenGL preview renders.

Be aware that since Blender uses a copyleft license, depending on how you want to use and distribute your app, this may or may not be acceptable.

Upvotes: 0

YadneshD
YadneshD

Reputation: 567

You can run a blender's python script without opening blender's GUI in background from command line. Go to directory where blender is installed, open terminal/cmd over there and type following command -

blender -b -P path/to/your/script.py

The flag -b tells blender to run in background. -P tells to run a python script using blender's python. If you want to open blender's GUI and run py script then run the following code:

blender -P path/to/your/script.py

While running as subprocess use the following code:

import subprocess
subprocess.run(['blender', '-b', '-P', 'path/to/your/script.py'])

Upvotes: 5

Related Questions