我想在Python代码中调用一个Julia脚本。使用pyjulia没有问题,但如果我将其设计为类,则会出现问题。我希望初始化Julia并在init函数中包含脚本。下面是我如何实现的示例,但我不能在函数中使用self.jul。它会抛出错误,因为self.jul没有"myJulFuntion"函数。我确定它在Julia脚本中,因为如果我将东西从init移到callJulFunc并调用jl.myJulFuntion(params),它可以正常工作。
有什么建议吗?
有什么建议吗?
import julia
julia.Julia()
from julia import Main as jl
class juliaStuff:
def __init__(self):
self.jul = jl
jl.include("my-julia-script.jl")
# or as alternative try
self.jul.include("my-julia-script.jl")
def callJulFunc(self, params ):
return self.jul.myJulFuntion(params)
编辑:我调整了我的代码。现在,当jl.include("my-julia-script.jl")或替代行出现时,它会在没有错误的情况下崩溃。
@Hugo Trentesaux:在您的代码中没有julia.Julia()初始化。对于我来说,即使没有这个,它也无法工作。
我的python版本是3.8.5,julia版本为1.5.2。
编辑2:我的问题是,我正在使用Django框架。运行此代码的简短示例很好,但将其作为从views.py调用的实现会在init中包含后导致Django进程崩溃。仅在函数中作为jl和调用julia导入Main不是问题。
因此,在我的views.py中,我添加了以下内容:
# at the top of the file
import juliaStuff as ju
# in a function
jul= ju.juliaStuff()
jul_res = jul.callJulFunc(params)
self.jul
?我对 Julia 一无所知,但这看起来至少很奇怪。 - Daniel Junglas