从java中从*.py文件调用python函数并传递和返回

2024-09-30 18:15:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从java代码调用*.py文件中的python函数,透明地发送参数并从中接收返回值,而不需要修改给定的*.py文件。与py4j、java2python、ScriptEngine、JPype相比,我是realised that Jython PythonInterpreter is the best option。在

我可以成功地通过/检索jythonpythonInterpreter列表。但还没有地图。(我创建了stackoverflow question来解释在传递map参数和检索map返回值时遇到的异常。)

我只是尝试了传递和检索panda系列(接下来我将尝试panda数据帧),如下所示:

py1.py

import numpy as np1
import pandas as pd

def getSeries():
    s = pd.Series(np1.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])
    return s

JythonTest.groovy

^{pr2}$

它给出了以下错误:

Exception in thread "main" Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "__pyclasspath__/py1.py", line 1, in <module>
ImportError: No module named numpy

在谷歌上搜索之后,我发现Jython does not support pandas and numpy。此外,网上还有其他网页也有同样的说法。不过他们都有点老了。在

Q.我想知道是否确实无法向Jython发送/接收熊猫数据帧?在

Q.如果不可能,是否有更好的选择?在

我还想知道为什么我的发送/接收地图不起作用。在


Tags: 文件数据inpyimportnumpymap参数