【发布时间】:2022-06-24 17:43:34
【问题描述】:
是否可以在另一个使用 graalpython 从 Java 运行的脚本中导入本地 python 脚本?
在 Java (Scala) 方面,代码如下所示:
val context = Context.newBuilder("python").
allowAllAccess(true).
option("python.ForceImportSite", "true").
option("python.Executable", "pyScripts/venv/bin/graalpython").
build()
val source = Source.newBuilder("python", new File("pyScripts/common/MyPyScript.py")).build()
context.eval(source)
val clazz = context.getPolyglotBindings.getMember("MyPyScript")
val instance = clazz.newInstance()
val res = instance.as(classOf[PyScriptApi])
然后在graalpython脚本中,我想做这样的事情(两个python文件都在common子目录下):
import java
import polyglot
from common.ScriptBase import ScriptBase
class MyPyScript(ScriptBase):
...
但是,这在 Scala 方面会出错:
Exception in thread "main" ModuleNotFoundError: No module named 'common'
我知道 Scala 代码可以评估此文件,但我希望脚本编写者能够将脚本拆分为多个文件。
【问题讨论】:
标签: graalpython