Ctypes在Jython中提供支持

时间:2015-01-12 11:48:16

标签: java python jython

我是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");   

   }  
}  

请让我知道我哪里出错或者我错了什么。

1 个答案:

答案 0 :(得分:0)

CPython(2.7)中的ctypes模块定义了create_string_buffer函数。 Jython(2.7 beta 3)中的ctypes模块没有。

我真的不知道这个,但似乎有理由得出结论,在Jython中对ctypes的支持是不完整的。另见: