我正在尝试使用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 ,但它向我显示了相同的错误。
有人知道如何配置这些路径或为什么会这样吗?谢谢
答案 0 :(得分:0)
GraalPython需要知道在哪里寻找其核心库文件以及Python标准库文件。通常,启动器($GRAALVM_HOME/bin/graalpython
)对此进行配置,但是如果您将GraalPython嵌入应用程序中,则需要自己提供它。
一种可能性是导出指向GRAAL_PYTHONHOME
的{{1}}(在基于JDK11的GraalVM构建中,它将是$GRAALVM_HOME/jre/languages/python
)。另一个是在构建上下文时提供所有选项:
$GRAALVM_HOME/languages/python