当前位置: 首页 > 知识库问答 >
问题:

使用jython从Java调用python并传递参数

从智志
2023-03-14

我想从java代码调用python并将参数传递给python中的函数。我已经在python中封装了一个函数。但问题是我还在python程序中导入了第三方库skLearning。当我调用测试程序并将值传递给python时,我能够运行代码。但是当我尝试在python代码中使用第三方库,例如skLearning和import时,我得到了以下错误。

ImportError: No module named sklearn

我初始化了Python解释器类的对象,然后使用以下命令,我包含了skLearning的路径

this.interpreter.exec("import sys");
this.interpreter.exec("sys.path.append(\"/usr/local/lib/python2.7/dist-packages/sklearn\")");

谁能告诉我如何解决这个问题?如何在jython代码中包含第三方库并运行程序?

共有1个答案

熊俊人
2023-03-14

由于sklearn依赖于本机的CPython扩展,因此目前无法与Jython一起使用。然而,请关注JyNI(www.JyNI.org),它将大大改善这个问题,但仍处于早期阶段。在JyNI足够成熟之前,您可以使用以下项目之一:

  • JEP(https://github.com/mrj0/jep)或
  • 日元(https://github.com/bcdev/jpy)。

它们通过嵌入CPython解释器工作,不与Jython集成。尽管如此,如果您依赖于Scikit或numpy之类的东西,这些是目前使用JavaPython代码的唯一可行方法。

 类似资料:
  • 我正在使用Jython从Java运行python脚本。当我使用调用python脚本时,我可以将数据作为命令行参数发送到python脚本。

  • 问题内容: 我正在寻找一种从Java调用exe并传递特定参数的机制。我能怎么做? 先前的代码有效。但是我无法在中传递参数。MyExe.exe接受参数。另一个问题是PathToExe有空格。ProcessBuilder似乎无法正常工作。例如: 谢谢。 问题答案: 在构造函数本身中传递参数。

  • 我试图使用jython在java中执行python脚本。重要的是,我需要使用jython将命令行参数传递给脚本,例如myscript。py arg1 arg2 arg3。这里有一个类似的问题:将参数传递到Java中的Python脚本 这没有得到完全的回答(所有解决方案都不起作用)。 我的代码现在看起来像这样: 然而,这似乎没有向python脚本传递任何参数。对如何正确地做这件事有什么建议吗?这一定

  • 我的Jython脚本调用了一些我用Java编写的代码(因为我更喜欢Java多线程)。现在,我需要从Java调用一个Jython方法(否则我必须用Java重写它)。 从Jython中驱动Java很容易,设置Java是主程序,Jython是从程序也很简单,但如何设置它以使它们能够相互调用并不明显。 官方文档包含了一篇关于这一切的非常长的文章:第10章:Jython和Java集成,这使得这项任务乍一看似

  • 问题内容: 我现在正在开发一个框架,其中一部分需要Jython。我只是使用MatPlotLib向其中添加了一些绘图,却没有意识到MatPlotLib与Jython不兼容。由于这两部分是非常孤立的,我可以在Python中运行大多数程序,并将少量信息传递给Jython部分(反之亦然),所以我想知道是否有一种简单的方法可以做到这一点,而保持框架的模块化性质。有想法吗? 问题答案: 我没有将execnet

  • 我正在处理平台频道(PlatformChannels),试图从Kotlin(Kotlin)到Flatter(颤振)进行通信。尝试实际执行颤振平台频道文档中解释的操作,但方向相反: 通道文件颤振平台 其思想是从MainActivity上的ConfigureFlatterEngine函数调用颤振函数。kt级。 为此,我做了,在颤振方面,梅因。dart(颤振的默认示例): 从Kotlin方面来说,我只是