【问题标题】:How to use python modules in jepp?如何在jepp中使用python模块?
【发布时间】:2013-03-31 20:37:24
【问题描述】:

我想在我的 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...

在这种情况下,我收到以下错误消息:“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' 对象没有

属性“线性模型”

在 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,设置环境变量等等。)

提前致谢!

【问题讨论】:

  • website 上没有适用于 Python 2.7 的 Jepp——也许这至少是问题的一部分。您可能需要从那里安装 python-2.6.4-vs7.1.msi 文件以获得 Python 解释器的兼容版本。
  • 感谢您的想法。我编辑了这篇文章,因为我没有提到我使用 linux (Ubuntu 12.04)。所以我使用 jep.2.4 并通过以下方式安装它:pip install jep。我不想重新安装,除非有人可以确认 jep 可以处理以下代码: - 'module.submodule.function' 或 - 使用 import: 'import module.submodule' 并使用 code: submodule.function' 所以 jepp 有能力使用这里提到的模块和子模块?因为如果不能,我不会再尝试了。
  • 在放弃 Jepp 之前,请尝试直接使用它,而不是通过 eclipse。
  • 不幸的是我做不到。如果我在命令行中启动'jep',我会得到:'Caused by: java.lang.ClassNotFoundException:jep.Run'。我按照这里的说明进行操作:project_site。我用'sudo pip install jep'安装了jepp并设置了两个环境变量:'LD_PRELOAD /usr/lib/libpython2.7.so''LD_LIBRARY_PATH /usr/local/lib/python2.7/dist-packages/'。
  • 然后我下载了 2.4.tar 包并运行 'python setup.py install' 它设法安装,但是如果我运行 'python setup.py test',我得到 4 与相关的错误(tests.test_jdbc.TestJdbc),例如:'ERROR: test_batch (tests.test_jdbc.TestJdbc)'

标签: java python jepp


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我不能代表 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 >>> 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) >>> clf.fit ([[0, 0], [1, 1], [2, 2 ]], [0, 1, 2])
      LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False) >>> clf.coef_
      array([0.5, 0.5]) >>>

      【讨论】:

        【解决方案4】:

        我今天找到了这个link

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

        谁能证实这一点?

        【讨论】:

        • 我重新安装了整个系统并在 windows 7 和 Ubuntu 12.10(从源代码编译)上尝试了 jepp,但它仍然无法导入 sklearn
        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 2011-10-01
          • 2021-10-06
          • 2023-01-31
          • 1970-01-01
          • 1970-01-01
          • 2014-11-07
          • 2012-05-27
          • 2023-03-16
          • 2014-11-30
          相关资源
          最近更新 更多