加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Jython:java调用python文件之第三方包路径问题

发布时间:2020-12-17 01:24:04 所属栏目:Python 来源:网络整理
导读:本方法解决python代码的可移植性,不需要在新机器上配置python环境,只通过安装jython的方式将python代码嵌入java工程 1. Jython如何安装 下载地址:。下载需要积分,如果无积分,可联系楼主。 傻瓜式下一步安装方式,路径最好和工程选在同一目录下。 2. 运

本方法解决python代码的可移植性,不需要在新机器上配置python环境,只通过安装jython的方式将python代码嵌入java工程

1. Jython如何安装

下载地址:。下载需要积分,如果无积分,可联系楼主。

傻瓜式下一步安装方式,路径最好和工程选在同一目录下。

2. 运行python代码

举个简单例子,安装好java环境及eclipse之后,copy如下代码即可运行。注释部分为运行文件的方式,需要新建文件后去掉注释执行。

3. 处理第三方包

在文件运行方式中,

第一种情况:如果.py文件中包含同一目录的自定义包,则在eclipse工程下可正常调用。

第二种情况:如果包含第三方包,需要拷贝到当前目录下。

第三种情况:由于路径问题无法调用。Jython/lib文件下有大量第三方包,如os,re,__future__,重复拷贝费时费力,这时可手动修改path路径。(推荐)

修改路径有两种方式:

(1) Java方式

将代码嵌入part 2代码,得到完整代码后执行,可以看到前后路径发生变化。

(2) python方式

(3) 灵活运用以上两种方式或其组合形式。

完整代码如下:

import org.python.core.Py;
import org.python.core.PySystemState;
import org.python.util.PythonInterpreter;

public class test {
public static void main(String args[]) throws IOException {
PythonInterpreter interpreter = new PythonInterpreter();
PySystemState sys = Py.getSystemState();
sys.path.add("E:src-pythonjythonLib");
interpreter.exec("import sys");
interpreter.exec("print sys.path");
interpreter.exec("path = "E:src-pythonjythonLib"");
interpreter.exec("sys.path.append(path)");
interpreter.exec("print sys.path");
interpreter.exec("a=3; b=5;");
InputStream filepy = new FileInputStream("E:input.py");
interpreter.execfile(filepy);
filepy.close();
}
}



运行结果:

E:input.py文件代码:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读