我正在尝试使用 Python 调用 Julia 脚本,以提高我需要调用很多次的函数的速度(对于某些 Monte Carlo 类型分析)。我已通过以下方式在 python 中成功安装并运行 Julia 脚本:
from julia import Main as JuliaMain # julia().<something> --> is deprecated, use Main instead
# julia.install() # use when running for the first time
script_julia = JuliaMain.include('juliascript.jl')
除了确保在 Julia 运行时中正确配置 PyCall。
如果我错了,请纠正我,但根据我目前的理解,这将编译内部的任何函数juliascript.jl
,因为 Julia 会弄清楚返回类型是什么,并在你调用和/或定义函数时执行它所做的任何动作第一次。
考虑到定义的函数juliascript.jl
类似于:
function f(x,y)
z = x + y
return z
end
如果我用 调用这个函数x = JuliaMain.eval("f(1, 3)")
,这个函数的速度会反映一个多次调用的 Julia 函数,还是每次都有效地“重新编译”?此外,我怎样才能调用这些定义的函数而不必将我的请求转换为字符串呢?我从文档中知道您可以直接设置和获取变量,但这似乎很笨拙,我希望有一种更优雅的方式,例如JuliaMain.f(x, y)
or格式的东西JuliaMain.runfunction.f(x, y)
等。