我正在尝试将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一起导入吗?
这有点像如何在jython中设置numpy。为了方便起见,我将从此处重复我的回答:
JyNI确实将NumPy支持作为主要目标,但只要它仍处于Alpha状态,它就不能做到。但是,直到成熟为止,您可以通过以下方式使用NumPy:
或者,您可以使用Java数字库进行计算,例如以下其中一项:
两者都是Java库,它们在blas或lapack(即NumPy使用的相同后端)本地进行数值处理,因此性能应或多或少等于NumPy。但是,它们不像NumPy那样具有出色的多数组实现功能。
如果您间接需要NumPy来实现对其他框架的依赖,则这些解决方案将无法立即使用。如果依赖性很小,那么您可以根据指定的项目之一重写/替换相应的调用。否则,您将不得不等待JyNI ...
如果您可以通过这种方式在Jython上运行某些框架,请考虑将您的工作公开发布,最好是作为框架的分支。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句