import numpy, ctypes import julia from julia.api import Julia jl = Julia() from julia import Main jl.eval('include("alter_array.jl")') a = numpy.array([1, 2, 3, 4, 5], 'uint32') print(a) addr = a.ctypes.data length = a.shape[0] Main.fn(a) print(a) Main.fn(addr, length) print(a)
import time, gc import numpy from julia.api import Julia from julia import Main jl = Julia(compiled_modules=False) jl.eval(""" include("return_array.jl") """) print('calling into Julia') res = Main.fn(123) print('Back in Python') for v in res: print(type(v)) print(v)
import numpy print(numpy.__file__) print(numpy.__version__) import julia print(julia.__file__) print(julia.__version__) from julia.api import Julia print('Initializing Julia (this might take a moment the first time)...') jl = Julia(compiled_modules=False) print('Done!') # Needs to come after the creation of the Julia instance above from julia import Main jl.eval('include("return_array.jl")') res = Main.fn() print(type(res)) print(res) print('item 0 =', type(res[0]))
from julia.api import Julia from julia import Main jl = Julia(compiled_modules=False) jl.eval('include("fn.jl")') import numpy x = numpy.array([[1, 2, 3], [4, 5, 6]], dtype=np.float32) print(x) res = Main.fn(x) print(x)
include("fn.jl") import Base.convert """) print('allocating') print(gc.get_stats()) x = numpy.ones(200 * 1024 * 1024, 'float32') #x = numpy.array([1,2,3,4,5,6], dtype=numpy.float32) #print(x) time.sleep(5) print('calling into Julia') Main.fn(x) print('Back in Python') time.sleep(5) print('Attempting to clean up') del x print(gc.get_stats()) time.sleep(5) #print(x)