# Easy way to run python script in blender python console?

When I press "run script" with a python script in the Text Editor, it runs, but seems to spawn some new invisible python interpreter. I'd like it to run in the Python Console that I already have open. Is there a way to do this?

As it stands now, I'm copying and pasting from the Editor to the Console, which sure is tedious.

• blenderartists.org/forum/… There may be some more recent versions, and IIRC @zeffii has something similar too. – batFINGER Apr 11 '16 at 14:41
• Another addon. Note, that the blender python console uses InteractiveConsole. You might have a look at scripts/modules/console_python.py. – pink vertex Apr 12 '16 at 8:46

In Blender 2.80 and higher, you can use as_module().

In the above example, an unsaved text editor shows this code:

def myTestFunc():
print('This is my test function, running')

print('This is my test module, running')


Then, in the Blender Python console on the left, you can import this:

myModule = bpy.data.texts[0].as_module()


Note that since this is my only text file, I've used texts[0] to reference it. If you had multiple, you would reference by name, such as texts["Text"] or similar.

Note that anytime the source code changes, you will have to re-run the as_module() command again to pick up the changes.

Finally, I can call functions from the module I imported, like so:

myModule.myTestFunc()


This uses the variable name that was assigned by the as_module() line, and looks for a named function within that module to call.

In the text editor, make sure that the code you want to run is callable (f.e. make it a function). Name the text datablock something.py). Now you can use import something in the console, and call something.yourfunc() on it.

• Sadly, this appears not to work anymore in Blender 2.80. – emackey Dec 3 '19 at 21:43