python类init中的julia对象

2024-05-23 17:14:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从python代码中调用julia脚本。pyjulia没有问题,但是如果我把它设计成一个类,那就有问题了。我想初始化julia并在init函数中包含一个脚本。下面的一个例子是,我不能在函数中使用self.jul。它抛出一个错误,因为self.jul没有函数“myjulfontion”。我确信它在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()init。如果没有这个,它甚至对我都不起作用

我的python版本是3.8.5 朱莉娅的成绩是1.5.2

编辑2:我的问题是,我在Django框架中使用它。运行此代码的一个简短示例很好,但是将其实现为来自views.py的调用,让django进程在init中的include之后崩溃。只是将Main作为jl导入并在函数中调用julia并不是问题

因此,在my views.py中,我添加了以下内容:

# at the top of the file
import juliaStuff as ju

# in a function
jul= ju.juliaStuff()
jul_res = jul.callJulFunc(params)

Tags: 函数代码importself脚本includeinitmy
1条回答
网友
1楼 · 发布于 2024-05-23 17:14:06

尝试将julia导入移出类构造函数,并且不要将self.jul设置为jl.include的输出:

# in script.jl
function hello()
 return "hello"
end
# in code.py
import julia
julia.Julia()
from julia import Main as jl

class juliaStuff:
    def __init__(self):
        self.jul = jl
        jl.include("script.jl")

    def callJulFunc(self):
        return self.jul.hello()

obj = juliaStuff()

print(obj.callJulFunc())

调用python代码会在终端中打印“hello”

相关问题 更多 >