首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python实现GraalVM多标记本地映像

用Python实现GraalVM多标记本地映像
EN

Stack Overflow用户
提问于 2020-07-10 19:37:16
回答 1查看 931关注 0票数 1

我正在尝试使用java/python运行一个polyglot本地映像。我能够使用以下命令行创建本机映像:

代码语言:javascript
复制
 native-image --language:python javapython

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

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

为了寻找这条指令,我找到了这个:

代码语言:javascript
复制
--python.CoreHome=<String>
--python.StdLibHome=<String>

我尝试用graalpython添加它,用CoreHome添加它看起来很有效,但是StdLibHome给我带来了另一个错误:

最初的例外是:

追溯(最近一次调用):_find_and_load ModuleNotFoundError中的文件"/importlib/_bootstrap.py",第986行:没有名为'site‘的模块

然后再次运行./javapython,但是它会显示同样的错误。

有人知道如何配置这些路径或为什么会发生这种情况吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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)。另一种方法是在构建上下文时提供所有选项:

代码语言:javascript
复制
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()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62841217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档