我使用的是来自anaconda发行版的python 3.7
使用pyjulia调用julia的某些函数时遇到问题
下面是我的代码片段:
import julia
from julia import Julia
julia.Julia(runtime=r"C:\Users\Bruno\AppData\Local\Programs\Julia\Julia-1.4.2\bin\julia.exe")
from julia import SpecialFunctions
SpecialFunctions.polygamma(3,2)
SpecialFunctons包引入了可以处理复杂参数的广义polygamma函数(与Scipy中的polygamma相反,它只接受实参数)
问题是,当我运行polygamma函数时,我遇到了以下错误:
julia exception: could not load library "libopenlibm"
The specified module could not be found.
Stacktrace:
[1] gamma at C:\Users\Bruno\.julia\packages\SpecialFunctions\LC8dm\src\gamma.jl:573 [inlined]
[2] polygamma(::Int64, ::Float64) at C:\Users\Bruno\.julia\packages\SpecialFunctions\LC8dm\src\gamma.jl:359
[3] polygamma(::Int64, ::Int64) at C:\Users\Bruno\.julia\packages\SpecialFunctions\LC8dm\src\gamma.jl:566
[4] invokelatest(::Any, ::Any, ::Vararg{Any,N} where N; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at .\essentials.jl:712
[5] invokelatest(::Any, ::Any, ::Vararg{Any,N} where N) at .\essentials.jl:711
[6] _pyjlwrap_call(::Function, ::Ptr{PyCall.PyObject_struct}, ::Ptr{PyCall.PyObject_struct}) at C:\Users\Bruno\.julia\packages\PyCall\zqDXB\src\callback.jl:28
[7] pyjlwrap_call(::Ptr{PyCall.PyObject_struct}, ::Ptr{PyCall.PyObject_struct}, ::Ptr{PyCall.PyObject_struct}) at C:\Users\Bruno\.julia\packages\PyCall\zqDXB\src\callback.jl:49
这意味着python无法从julia找到libopenlibm库,这可能是运行函数SpecialFunctions.polygamma所必需的。我不知道如何让python看到这个模块。dll libopenlibm.dll.a显然位于安装julia的文件夹中。我尝试重新安装pyjulia,修改路径,并调用julia的其他模块(看看这是否可能实现一个表)。然而,我没有成功
其他不需要此库的函数(例如SpecialFunctions.gamma(x))没有此问题
所以,问题可能是:我如何使python将这个特定的julia库加载到内存中
任何帮助都将不胜感激
目前没有回答
相关问题 更多 >
编程相关推荐