为 PyJulia 编译并使用自定义系统映像

Fil*_*ffa 5 python julia

我尝试按照本页的说明构建自定义 Julia 系统映像,以便加快使用 PyJulia 时的初始化阶段。该命令python3 -m julia.sysimage sys.so成功构建了sys.so图像,但jl = Julia(sysimage="sys.so")似乎失败了,因为我仍然得到:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 668, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 638, in _load_backward_compatible
  File "/home/jar/.local/lib/python3.7/site-packages/julia/core.py", line 248, in load_module
    elif self.julia.isafunction(juliapath):
  File "/home/jar/.local/lib/python3.7/site-packages/julia/core.py", line 239, in julia
    self.__class__.julia = julia = Julia()
  File "/home/jar/.local/lib/python3.7/site-packages/julia/core.py", line 483, in __init__
    raise UnsupportedPythonError(jlinfo)
julia.core.UnsupportedPythonError: It seems your Julia and PyJulia setup are not supported.

Julia executable:
    julia
Python interpreter and libpython used by PyCall.jl:
    /usr/bin/python3
    /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
Python interpreter used to import PyJulia and its libpython.
    /usr/bin/python3.7
    None

Your Python interpreter "/usr/bin/python3.7"
is statically linked to libpython.  Currently, PyJulia does not fully
support such Python interpreter.
Run Code Online (Sandbox Code Playgroud)

这与我首先尝试通过编译此自定义图像来解决的问题相同。我究竟做错了什么?我想避免这种Julia(compiled_modules=False)解决方法,因为它实际上需要永远的时间。

Fil*_*ffa 2

它似乎与此问题有关,并且以下加载自定义图像的解决方法似乎有效:

from julia.api import LibJulia
api = LibJulia.load()
api.sysimage = "PATH/TO/CUSTOM/sys.so"
api.init_julia()

from julia import Main
Run Code Online (Sandbox Code Playgroud)