Python3Script Xojo Plugin

Python3Script.RegisterXojoModule Method

Registers a Xojo module to expose to python.

shared RegisterXojoModule(
   xojoModule as Python3XojoModule,
   moduleCreatorFunction as Ptr)

Parameters

xojoModule
The Xojo module to expose to Python.
moduleCreatorFunction
Address of module creation function. (See notes bellow and the example projects that come with the plugin)

Remarks

You should normally call this in your App.Open even right before Python3Script.Init

Note difference from our other PythonScript plugin which is for Python 2.7.x:
For Python 3.4.x then classes exposed from Xojo must be registered before the Init method is called while in 2.7.x we registered them after the Init.

Also since modules are created in different way then you now must include additional parameter which is address of a module creation function in your module


Example:
If not Python3Script.PythonIsFound() then
    MsgBox "Correct Python installation was not found on this machine"
    Quit()
else
    // We register the module to Python
    Python3Script.RegisterXojoModule(xojoModule, AddressOf XojoFunctionsForPython.ModuleInit)
   
    // Init the Python engine
    Python3Script.Init("TestApp")
end if


Where the ModuleInit function will have code like this here:

Function ModuleInit() As Ptr
    // You get this callback when the PythonModule is actually created for this first time.
    // This is needed because Python 3.x is very differently wired and doing this internally was not possible.
   
    // DO NOT RETURN ANYTHING HERE EXCEPT JUST WHAT THE MODULECREATEPROC FUNCTION RETURNS
    return ModuleHandle.ModuleCreateProc()
End Function

See Also

Python3Script Class