使用Python的GraalVM多语言本机映像

时间:2020-07-10 19:37:16

标签: python graalvm

我正在尝试使用java / python运行多语言本机映像。我可以使用以下命令行创建本地图像:

 native-image --language:python javapython

但是当用 ./ javapython 运行它时,会抛出此错误:

启动失败,无法从/lib-graalpython/builtins.py中读取核心库。也许您需要设置python.CoreHome和python.StdLibHome。

寻找此指令后,我发现了这一点:

--python.CoreHome=<String>
--python.StdLibHome=<String>

我尝试使用 graalpython ,使用 CoreHome 来添加它,但使用 StdLibHome 时又抛出了另一个错误:

最初的例外是:

回溯(最近通话最近): 文件“ /importlib/_bootstrap.py”,行986,在_find_and_load中 ModuleNotFoundError:没有名为“站点”的模块

然后再次运行 ./ javapython ,但它向我显示了相同的错误。

有人知道如何配置这些路径或为什么会这样吗?谢谢

1 个答案:

答案 0 :(得分:0)

GraalPython需要知道在哪里寻找其核心库文件以及Python标准库文件。通常,启动器($GRAALVM_HOME/bin/graalpython)对此进行配置,但是如果您将GraalPython嵌入应用程序中,则需要自己提供它。

一种可能性是导出指向GRAAL_PYTHONHOME的{​​{1}}(在基于JDK11的GraalVM构建中,它将是$GRAALVM_HOME/jre/languages/python)。另一个是在构建上下文时提供所有选项:

$GRAALVM_HOME/languages/python