This tasks proposed to include python in Blender (python.exe on windows, so every Blender installation can be ensured to run the same version of Python that's included with Blender).
Short Version: subprocesses.
Blender currently uses Python for many tasks, but anything that takes longer then a few seconds will lock Blender up, Currently some addons load a separate Blender process (SketchFab for example), However if this is only to transfer data, the overhead of running an entire Blender instance, just for its Python interpreter isn't very efficient.
Uses for Python subprocesses:
- General online integration (file upload/download ... asset manager, cloud... etc).
- Background processing (avoid locking up Blender).
Blender could just run Python, but this means you have to install Python and have it available in the systems PATH which isn't so common on Windows.
Including the python binary means we can ensure that there will be a python3.4 for certain.
On my system (64bit Linux) (python+libpython3.4) compress to ~1mb. It will vary between platforms but should stay under 2-3mb.
Since we already include a full python for each platform. Including the python binary in fact isn't much extra work (will be included in svn lib/(platform)/, will have to be copied across from the system).
Note that this will have to be a static build (since we aren't LD_PRELOADing libpython)
Access from Blender
Currently blender includes: 2.73/python/lib/python3.4
The python binary can be located at: 2.73/python/bin/python
We can have an attribute to access this to avoid each script having to find the path.
eg bpy.app.python_path. (as we have for bpy.app.binary_path to access Blender's binary)
For Linux distributions which don't bundle Python, this can simply point to $(which python)