我正在尝试使用java/python运行一个polyglot本地映像。我能够使用以下命令行创建本机映像:
native-image --language:python javapython但是,当使用./javapython运行它时,它会抛出以下错误:
启动失败,无法从/lib-graalpython/builtins.py读取核心库。也许您需要设置python.CoreHome和python.StdLibHome。
为了寻找这条指令,我找到了这个:
--python.CoreHome=<String>
--python.StdLibHome=<String>我尝试用graalpython添加它,用CoreHome添加它看起来很有效,但是StdLibHome给我带来了另一个错误:
最初的例外是:
追溯(最近一次调用):_find_and_load ModuleNotFoundError中的文件"/importlib/_bootstrap.py",第986行:没有名为'site‘的模块
然后再次运行./javapython,但是它会显示同样的错误。
有人知道如何配置这些路径或为什么会发生这种情况吗?谢谢
发布于 2020-07-13 08:41:28
GraalPython需要知道在哪里查找其核心库文件和Python标准库文件。通常,启动程序($GRAALVM_HOME/bin/graalpython)会对其进行配置,但是如果将GraalPython嵌入到应用程序中,则需要自己提供。
一种可能是导出指向$GRAALVM_HOME/jre/languages/python的$GRAALVM_HOME/jre/languages/python(基于JDK11的GraalVM构建--它将是$GRAALVM_HOME/languages/python)。另一种方法是在构建上下文时提供所有选项:
Context context = Context.newBuilder()
.option("python.CoreHome", "/path/to/graalvm/jre/languages/python/lib-graalpython")
.option("python.StdLibHome", "/path/to/graalvm/jre/languages/python/lib-python/3")
// ...
.build()https://stackoverflow.com/questions/62841217
复制相似问题