Jep初体验

  |   0 评论   |   144 浏览

背景

Jep是一个在Java中调用Python的库,原理是通过JNI来调用CPython。

Jep支持 python 2.7, 3.3 - 3.7。

噢,为什么没有尝试下 Jython? 因为我这边需要用 Python3.x,目前Jython仅支持到 python 2.7.1。

初体验

编译Python

需要也生成 .so 文件,故加上 --shared 参数

./configure --shared

需要编译时加上参数 -fPIC,故编辑 Makefile文件,修改为

CC=             gcc -pthread -fPIC
CXX=            g++ -pthread -fPIC

然后编译,安装

make
sudo make install

安装jep

/usr/local/bin/pip3 install jep

代码

pom.xml

pom.xml

  <dependencies>
    <dependency>
      <groupId>black.ninia</groupId>
      <artifactId>jep</artifactId>
      <version>3.8.2</version>
    </dependency>
  </dependencies>

MainJep.java

package testJep;

import jep.Jep;
import jep.JepException;

public class MainJep {
  public static void main(String[] args) throws JepException {
    try (Jep jep = new Jep()) {
      jep.eval("from java.lang import System");
      jep.eval("s = 'Hello World'");
      jep.eval("System.out.println(s)");
      jep.eval("print(s)");
      jep.eval("print(s[1:-1])");
      
      jep.eval("import sys");
      jep.eval("sys.version_info");
    }
  }
}

运行

java -jar testJep-0.0.1-SNAPSHOT/testJep-0.0.1-SNAPSHOT.jar
Hello World
Hello World
ello Worl
sys.version_info(major=3, minor=7, micro=0, releaselevel='final', serial=0)

参考

评论

发表评论

validate