0

我想在我的 python 代码中使用 python 模块。但我认为jepp无法正确处理它。

例如:

>>>from  sklearn  import  linear_model    
>>>clf  =  linear_model.LinearRegression()    
>>>clf.fit  ([[0,  0],  [1,  1],  [2,  2]],  [0,  1,  2])    
>>>LinearRegression(copy_X=True, fit_intercept=True, normalize=False)    
>>>clf.coef_    
>>>array([ 0.5,  0.5])

Jepp 似乎在第一行之后永远运行:没有错误消息或异常(我从 eclipse 中使用 jep.eval("script") 调用这些行),但是如果我从 python 解释器“手动”运行它,则代码可以工作。

如果我以这种方式使用它也不起作用:

>>>import sklearn
>>>clf  =  sklearn.linear_model.LinearRegression()
>>>...same as above...

在这种情况下,我收到以下错误消息:“严重:空

jep.JepException: jep.JepException: : 'module' 对象有

没有属性'linear_model'

在 jep.Jep.eval(Jep.java:294)

在 Main.executeScript(Main.java:72)

在 Main.main(Main.java:36)

引起:jep.JepException: : 'module' 对象没有

属性“线性模型”

在 jep.Jep.eval(本机方法)

在 jep.Jep.eval(Jep.java:278)

……还有 2 个”

我唯一的模块工作版本是:

将 numpy 导入为 np

beta = np.array([1, 0.1, 10])

所以我需要一个解决方案

  • 使用代码:'module.submodule.function'
  • 使用导入:'import module.submodule' 并使用代码:'submodule.function'

是否可以?

我在 Ubuntu 12.04 上使用 python 2.7.2 和 jep 2.4。我从 Eclipse 调用上面的代码,在其中设置了这些环境变量:

  • LD_PRELOAD /usr/lib/libpython2.7.so
  • LD_LIBRARY_PATH /usr/local/lib/python2.7/dist-packages/

我知道有更新版本的 jepp 但对我来说很难配置 2.4。太,所以如果没有必要,我不会安装更新的。(因为这对我来说很耗时。我不得不用ucs4编译一个全新的python解释器,将安装的python包从dist-packages复制到site-packages,设置环境变量等等。)

提前致谢!

4

5 回答 5

1

还有另一个名为 pyro4 的 sourceforge 项目。它可以处理 python 模块,例如:numpy、sklearn……也许它更好,因为它目前正在开发中。(最后一个 jepp 版本于 2010 年发布)

于 2013-04-06T09:09:03.273 回答
1

查看https://github.com/mrj0/jep,这就是 JEP 现在所在的位置。而且好像最近更新了。根据该站点,它现在适用于 Python 版本 >= 2.6。

于 2014-01-05T20:34:26.910 回答
1

我不能代表 JEP 的早期版本,但我能够从 JEP 3.7.1 命令行运行您的脚本。它使用 Python 3.6.5。我也可以在 Java 8 中运行等价物。

C:>jep ....python\python36\Lib\site-packages\jep\console.py"

          No readline available. History will not be available.

               For Windows use pyreadline and get it from the official git
               repo on github:
               https://github.com/pyreadline/pyreadline

               Do NOT use the version on pypi.python.org, and therefore
               Do NOT use the version installed by pip.  It is out of date
               and doesn't work with Jep!

>>>from sklearn import linear_model <-- JEP 需要几秒钟来处理导入
>>>clf = linear_model.LinearRegression()
>>>clf.fit ([[0, 0], [1, 1], [2, 2]], [0 , 1, 2])
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False) <-- JEP 返回
>>>clf.fit ([[0, 0], [1, 1], [2, 2 ]], [0, 1, 2])
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False) <-- JEP 返回
>>>clf.coef_array
([0.5, 0.5]) <-- JEP 返回
>>>

于 2018-06-12T21:52:48.550 回答
0

我今天找到了这个链接

它说:“Jepp 似乎无法导入第三方库,如 scipy、numpy 或 wx(不过可以导入纯 Python 模块)。”

有人可以证实这一点吗?

于 2013-04-02T22:19:03.387 回答
-1

Balazs,它确实会导入 3rd-party 库。可以做一个Jep.eval('import sklearn')声明。

于 2018-07-10T17:16:06.717 回答