16
$\begingroup$

What version of Python does Blender use and are other languages available? Also, does Python work the same in Blender as when you write console applications or when working with Pygame or are there any differences? If so, what are the main differences?

$\endgroup$
  • $\begingroup$ Would you care to narrow the scope of your question regarding what differences you will encounter? comparing pygame api to blender api is a rather broad topic and will require either a very long answer or very generalized but short response. $\endgroup$ – zeffii Aug 26 '13 at 13:36
  • 1
    $\begingroup$ Python 2 is no longer supported, see: How to change the Python version that Blender uses? $\endgroup$ – Aldrik Aug 26 '13 at 13:41
  • 1
    $\begingroup$ Also, does python work the same in blender --- this should really be its own question, its quite a large topic, I answered it but since deleted my post, best ask in a separate Q. $\endgroup$ – ideasman42 Oct 6 '13 at 17:50
10
$\begingroup$

Since Blender 2.5 only Python 3 is supported. From blender.org:

The Blender 2.5x versions feature a completely new Python API based on Python version 3.2, and is integrated deeply, used for generating Blender's GUI layouts, for import and export of external formats, and with access to all user-accessible data and functionality.

What changes across applications is the API - Application programming interface. So if you're used to pygame and console API, now you need to learn Blender API. So yes, the idea is the same, but the API is different.

Here's a Quickstart Introduction.
And here's the full API.

$\endgroup$
7
$\begingroup$

Blender only supports Python3 for scripting, and currently there are now plans to support other languages natively.


There are however a few ways to use other languages from Python.

Use CPython to Execute Other Languages

Its possible to generate CPython bytecode directly.

  • Hy (Lisp syntax for CPython runtime), This works quite well with Blender.
  • Mochi

Bridge CPython to Other Runtimes

  • Lupa (Lua/Python)
  • Lunatic (Lua/Python) not updated for Python3

Call out to other languages From CPython

You could also look into LLVMPy, PyOpenCL or Cuda for Python, see this answer: https://blender.stackexchange.com/a/3159/55

Execute external processes

Theres nothing special about this, you can simply write out some XML/JSON/ANYFORMAT file from Blender's Python API, then load that file into any other runtime as an external process. operate on it, then read the data back in.

In some cases this is useful, but often its more trouble then its worth to write & read the data back into Blender.


Though I really would recommend just learning Python syntax, while its possible to side-step this, most/all? solutions to do so are not 100%... (no auto-completion in the console for example), defining callbacks to give to Blender... this kind of integration you loose.

$\endgroup$
  • $\begingroup$ Is there any plans for JavaScript/node.js support? $\endgroup$ – William Oct 28 '18 at 14:10
6
$\begingroup$

Besides Python 3.x Blender supports:

  • GLSL OpenGL Shading Language which also supported in the game engine for materials or postprocessing
    (compiled at runtime by the OpenGL driver)

and

$\endgroup$
  • $\begingroup$ Doesn't glsl code need to be compiled into blender at build time, rather that being added by a user at run time? Which would make it comparable to using C/C++ $\endgroup$ – sambler Aug 27 '13 at 2:06
  • $\begingroup$ @sambler I first discovered GLSL here blender.stackexchange.com/questions/1335/… (linked .blend file in the last line of the post). The results I had are shown here: blender.stackexchange.com/questions/2561/… the shader worked without compilation like a custom OSL shader. $\endgroup$ – stacker Aug 27 '13 at 6:24
4
$\begingroup$

Blender 2.5 and above use python 3 but latest versions of Blender 2.6x utilize python 3.3 as the main scripting language. See the Blender API documentation. Blender Education & Help has more details if you are new to Blender.

Blender comes with CPython bundled, it is mostly the same default package that you might otherwise get from the python.org downloads, minus a few modules.

The Blender API is significantly different to pygame, but if you are comfortable with Python programming that won't be an obstacle.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.