我是Java和python的新手。我需要从Java应用程序调用几个python脚本。目前我正在使用Jython 2.7 beta 3版本来执行此操作。我的python脚本使用Ctypes(create_string_buffer)中的方法。当我从Java运行此脚本时,它会抛出以下错误。
'module'对象没有属性'create_string_buffer'
我的java代码如下:
import org.python.core.PyInstance;
import org.python.core.PyObject;
import org.python.util.PythonInterpreter;
import org.python.core.PyString;
public class Sample
{
PythonInterpreter interpreter = null;
public Sample()
{
PythonInterpreter.initialize(System.getProperties(),
System.getProperties(), new String[0]);
this.interpreter = new PythonInterpreter();
}
void execfile( final String fileName )
{
this.interpreter.execfile(fileName);
}
void eval( final String className, final String opts )
{
this.interpreter.eval(className + "(" + opts + ")");
}
PyInstance createClass( final String className, final String opts )
{
return (PyInstance) this.interpreter.eval(className + "(" + opts + ")");
}
public static void main( String gargs[] )
{
Sample ie = new Sample();
ie.execfile("C:/Users/trail.py");
}
}
请让我知道我哪里出错或者我错了什么。
答案 0 :(得分:0)
CPython(2.7)中的ctypes模块定义了create_string_buffer
函数。 Jython(2.7 beta 3)中的ctypes模块没有。
我真的不知道这个,但似乎有理由得出结论,在Jython中对ctypes的支持是不完整的。另见: