【问题标题】:Using NumPy with JyNI将 NumPy 与 JyNI 一起使用
【发布时间】:2015-06-04 21:40:56
【问题描述】:

我正在尝试将 Python 程序与 Java 一起使用。我的Python程序如下:

import CostCalculatorType
import os
from Evaluate.read_input_data import *

class CostCalculator(CostCalculatorType, object):

    def __init__(self):
        print 'Initializing'
        pass

    def calculateCost(self, chromosome):
        inputData = ReadInputData(chromosome, 'input_data.txt')
        return inputData

我从 Java 接口调用它。 我正在使用 JyNI.org 上指定的以下命令:

java -cp /home/ch/jython.jar:/home/ch/JyNI.jar org.python.util.jython CostCalculator.py

java Main

我收到以下错误:

File "/home/ch/CostCalculator.py", line 18, in calculateCost
    inputData = ReadInputData(chromosome, 'input_data.txt')
File "/usr/lib/python2.6/site-packages/Evaluate/read_input_data.py", line 21, in __init__
    self.info = infoClass(0, [], [], 0.02)
File "/usr/lib/python2.6/site-packages/Evaluate/infoClass.py", line 7, in __init__
    import numpy
ImportError: No module named numpy

NumPy 可以用 JyNI 导入吗?

【问题讨论】:

标签: python numpy jython


【解决方案1】:

这是How to setup numpy in jython 的副本。 为方便起见,我将从那里重复我的答案:

JyNI 确实将 NumPy 支持列为其主要目标,但目前还不能这样做,只要它仍处于 alpha 状态。然而,在它足够成熟之前,您可以通过

使用 NumPy

或者,您可以使用 Java 数值库进行计算,例如其中之一:

两者都是由 blas 或 lapack(即 NumPy 使用相同的后端)支持的本地数字处理的 Java 库,因此性能应该或多或少与 NumPy 相当。但是,它们没有 NumPy 那样出色的多数组实现。

如果您需要 NumPy 间接满足某些其他框架的依赖关系,这些解决方案不会开箱即用。如果依赖关系只是微不足道的,则您可以基于其中一个命名项目重写/替换相应的调用。否则你将不得不等待 JyNI...

如果您可以通过这种方式使某些框架在 Jython 上运行,请考虑将您的工作公开,最好是作为框架的一个分支。

【讨论】:

  • 是的。 JEP 运行良好。我尝试使用它。但是,如果与 Apache Spark 集成,则无法同时执行。
猜你喜欢
  • 2011-08-18
  • 2014-12-23
  • 1970-01-01
  • 2011-03-07
  • 2018-03-07
  • 1970-01-01
  • 2014-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多