如何在jepp中使用python模块?

时间:2013-03-31 20:37:25

标签: java python jepp

我想在我的python代码中使用python模块。但我认为杰普无法妥善处理它。

例如:

>>>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似乎在第一行之后永远运行:没有错误消息或异常(我用jep.eval(“script”)从eclipse中调用这些行),但是如果我从python解释器中手动运行它,代码就可以了”。

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

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

在这种情况下,我收到以下错误消息:“SEVERE:null

     

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'对象没有

     

属性'linear_model'

     

在jep.Jep.eval(原生方法)

     

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

     

... 2更多“

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

  
    
      

将numpy导入为np

             

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

    
  

所以我需要一个解决方案才能

  • 使用代码:'module.submodule.function'
  • 使用import:'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,设置环境变量等等。)

提前致谢!

5 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

查看https://github.com/mrj0/jep,这就是JEP现在的位置。它似乎最近更新了。根据网站,它现在适用于Python版本> = 2.6。

答案 2 :(得分: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!
来自sklearn的

>>>导入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_
数组([0.5,0.5])< - JEP返回
>>>

答案 3 :(得分:0)

我今天发现了这个link

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

有人可以证实吗?

答案 4 :(得分:-1)

Balazs,它将确实导入3rd-party库。一个人可以做info语句。