jpython使用_jpython的使用(Java调用python脚本)

1、导入Jar

jar下载地址

找到jython-installer-2.7.0.jar 包里面的jpython.jar,加载到工作目录

我用的java开发工具是IDEA、JDK8、Python3.5

2 、执行python源码

获取一个元组里面的元素

import org.python.util.PythonInterpreter;

public class FirstJavaScript {

public static void main(String args[]) {

PythonInterpreter interpreter = new PythonInterpreter();

interpreter.exec("days=('mod','Tue','Wed','Thu','Fri','Sat','Sun'); ");

interpreter.exec("print days[1];");

}// main

}

一般会出现以下异常

Exception in thread "main" ImportError: Cannot import site module and its dependencies: No module named site

Determine if the following attributes are correct:

* sys.path: ['C:\\Users\\Administrator\\IdeaProjects\\MyText\\lib\\Lib', '__classpath__', '__pyclasspath__/']

This attribute might be including the wrong directories, such as from CPython

* sys.prefix: C:\Users\Administrator\IdeaProjects\MyText\lib

This attribute is set by the system property python.home, although it can

be often automatically determined by the location of the Jython jar file

You can use the -S option or python.import.site=false to not import the site module

看错误可以理解为一些库的路径错误,下面也给出了解决方法

我们只需要吧代码改为以下这个例子就可以顺利执行了。

Properties props = new Properties();

props.put("python.home", "path to the Lib folder");

props.put("python.console.encoding", "UTF-8");

props.put("python.security.respectJavaAccessibility", "false");

props.put("python.import.site", "false");

Properties preprops = System.getProperties();

PythonInterpreter.initialize(preprops, props, new String[0]);

PythonInterpreter interpreter = new PythonInterpreter();

interpreter.exec("days=('mod','Tue','Wed','Thu','Fri','Sat','Sun'); ");

interpreter.exec("print days[1];");

执行结果是Tue

3、调用.py中的方法

test.py的源码

def add(a, b):

return a + b

Java源码

Properties props = new Properties();

props.put("python.home", "path to the Lib folder");

props.put("python.console.encoding", "UTF-8");

props.put("python.security.respectJavaAccessibility", "false");

props.put("python.import.site", "false");

Properties preprops = System.getProperties();

PythonInterpreter.initialize(preprops, props, new String[0]);

PythonInterpreter interpreter = new PythonInterpreter();

interpreter.execfile("test.py");

PyFunction func = (PyFunction) interpreter.get("adder",

PyFunction.class);

int a = 100, b = 100;

PyObject pyobj = func.__call__(new PyInteger(a), new PyInteger(b));

System.out.println("anwser = " + pyobj.toString());

执行结果为 200

4、执行 .py文件

test.py

# -*- coding: utf-8 -*

print ("hello")

ls = [1,2,3,4,5,6]

print(ls)

print('你好')

java代码

Properties props = new Properties();

props.put("python.home", "path to the Lib folder");

props.put("python.console.encoding", "UTF-8");

props.put("python.security.respectJavaAccessibility", "false");

props.put("python.import.site", "false");

Properties preprops = System.getProperties();

PythonInterpreter.initialize(preprops, props, new String[0]);

PythonInterpreter interpreter = new PythonInterpreter();

interpreter.execfile("test.py");

执行结果:

hello

[1, 2, 3, 4, 5, 6]

你好

如果报出如下异常,请在源码加上

# -- coding: utf-8 -

Exception in thread "main" SyntaxError: Non-ASCII character in file

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flink 1.11 与 Hive 批流一体数仓实践

导读:Flink 从 1.9.0 开始提供与 Hive 集成的功能,随着几个版本的迭代,在最新的 Flink 1.11 中,与 Hive 集成的功能进一步深化,并且开始尝试将流计算场景与Hive 进行整合。 本文主要分享在 Flink 1.11 中对接 Hive 的新…

双11还能创造什么新技术?

简介: 当下购物峰值不再是最大挑战,下一代技术创新将会出现在哪里? 诞生12年后,双11仍然续写答卷,也留下了问卷:当购物峰值不再是最大挑战,下一代技术创新,将会出现在哪里&#xff1…

于变局中开新局!《2021中国SaaS市场研究报告》报告发布

我国SaaS市场即将步入成熟需求,一起跟上! 中国市场数字化发展已经历了部门级信息化(2005年以前)、企业级信息化(2006-2015年)、产业级数字化(2016-2020年)三个阶段,在20…

4982亿背后的前端技术—2020天猫双11前端体系大揭秘

简介: 整体介绍一下淘系前端在今年双11的思考和沉淀。 今年双11的整体节奏从之前的“光棍节”变为“双节棍”,具体业务上也有很多变化和调整,应了阿里的土话“唯一不变的是变化”。面对这些变化,是挑战也是机会,我们要…

mysql5.7 rar_mysql5.7 压缩包版本安装

因为使用yum的库,太多依赖解决不了,所以使用压缩包版本来安装Mysql因为centos系统自带了一个mysql,但是版本非常低,是5.1的,所以先卸载通过 yum list installed 列出所有已安装的文件找到要删除的文件后,yu…

从应用开发角度认识 K8S

简介: 作者个人介绍 刘晨 Lorraine 坐标Fintech,精通持续集成与发布,曾具有全平台100应用持续部署持续发布实战经验,现在立志于成为K8S玩家。 云原生应用 我们正经历从单体应用转向分布式微服务架构应用的技术趋势。分布式微服务…

MySQL 十大常用字符串函数

作者 | 不剪发的Tony老师 责编 | 欧阳姝黎出品 | CSDN博客数据库函数是一种具有某种功能的模块,可以接收零个或多个输入值,并且返回一个输出值。MySQL 为我们提供了许多用于处理和分析数据的系统函数,本文给大家介绍 10 个常用的字符串…

海口只有阳光沙滩?错,人家还是“最佳智慧城市”

简介: 作为中国最南端的省份,海南一直都是全国人民的“后花园”,也是度假的最佳选择,住海景房远海潜水、直升机观光、乘帆船出海、吃海鲜大餐等花样繁多的旅游项目成就了海南的旅游TOP1地位,海南也被游客誉为“东方夏威…

让数据中台飞起来—— Quick BI性能优化解决方案及实践

Quick BI“数据门户”在企业数据中台建设中的重要性 企业在数据中台初步建设完成以后,怎样让客户直观感受到数据中台的价值?企业决策者、各部门管理人员、业务运营人员如何通过统一的窗口,快速看到数据中台提供的数据,并利用这些数…

到底要不要报考“通信工程”?

作者 | 小枣君来源 | 鲜枣课堂“通信工程”是干嘛的通信工程,英文全称叫做Communication Engineering,是一门重要的工学基础学科。根据教育部《学位授予和人才培养学科目录设置与管理办法》,“通信工程”属于二级学科,归属于“信息…

日均调用量超13亿次,阿里达摩院研发全球首个实时翻译直播

简介: 近几年来,直播电商到处开花,但绝大多数都是国内的中文直播。如果想买外国电商主播推荐的商品,语言不通怎么办?这一难题已被阿里巴巴(下称 “阿里”)攻克,阿里速卖通是面向全球…

python刷题技巧_【python刷题】分治法

归并排序def merge(le, ri):res []i j 0while i < len(le) and j < len(ri):if le[i] < ri[j]:res.append(le[i])i 1else:res.append(ri[j])j 1res res le[i:] ri[j:]return resdef mergeSort(nums):if len(nums) < 1:return numsmid len(nums) // 2left …

双十一消费近万亿!1亿人见证数字物流,“尾款人”收货更快了?购物狂欢七大趋势浮现

来源&#xff1a; 券商中国 作者&#xff1a; 段久惠 国人买买买&#xff0c;双十一期间交易额首次进入万亿元时代。 今年双十一分为两个阶段&#xff0c;11月初就开始预售&#xff0c;一方面减缓了商家发货的压力&#xff0c;另一方面在营销上商家有了两波密集营销的机会以带…

数据爆炸时代,浪潮K1 Power释放新算能

IDC 预测&#xff0c;到 2020 年至 2023 年&#xff0c;亚太地区 GDP 的 65&#xff05; 以上将实现数字化&#xff0c;数字化转型支出将达到 1.2 万亿美元。其中到 2025 年&#xff0c;超过 25% 的 500 强企业将成为软件开发公司。 数字化进程的加快带来的科技革命和产业变革…

AI云原生浅谈:好未来AI中台实践

简介&#xff1a; 2020年云栖大会上&#xff0c;好未来AI中台负责人刘东东&#xff0c;分享了他对AI云原生的理解与好未来的AI中台实践&#xff0c;本文为演讲内容整理。 AI时代的到来&#xff0c;给企业的底层IT资源的丰富与敏捷提出了更大的挑战&#xff0c;利用阿里云稳定、…

gitee如何搭建mysql_MySQL高可用架构集群环境搭建手册.md

# MySQL高可用架构集群环境搭建手册## 环境准备### 机器规划| 节点 | IP | 配置 | 角色 || -------- | -------------- | ---- | ---------------- || master-1 | 192.168.73.129 | 1c2g | master、HMA node || slave-1 | 192.168.73.130 | 1c1g | salve、HMA node || slave-2 …

直击“上云”痛点的 MSP 新生意,万博智云发布云原生迁移工具 HyperMotion 3.0

作者 | 宋慧 出品 | CSDN云计算 头图 | 付费下载于IC photo CSDN 在 4 月对德勤《2021 年技术趋势报告》的报道时&#xff0c;德勤分析师曾提到&#xff0c;在中国近 20 年的 IT 历程中&#xff0c;经历 ERP 和 toC 浪潮之后的中国企业&#xff0c;对云计算的认识却停留在降低…

我看技术人的成长路径

简介&#xff1a; 有一句诗词说&#xff1a;宠辱不惊&#xff0c;看庭前花开花落&#xff1b;去留无意&#xff0c;望天上云卷云舒。其实就是讲内心修炼到了一种心境平和&#xff0c;淡泊自然的境界。 作者 | 儒枭 为什么要成长 成长是为了在职场升值&#xff0c;提升职场竞争…

KubeVela 正式开源:一个高可扩展的云原生应用平台与核心引擎

美国西部时间 2020 年 11 月 18 日&#xff0c;在云原生技术“最高盛宴”的 KubeCon 北美峰会 2020 上&#xff0c;CNCF 应用交付领域小组&#xff08;CNCF SIG App Delivery) 与 Open Application Model (OAM) 社区&#xff0c;以及来自阿里云、微软云的 OAM 项目维护者们在演…

ESL:我们如何使用首云混合云产品实现提效降本

背景ESL Play是世界上最大也是历史悠久的电子竞技独立联盟&#xff0c;成立于1997年。ESL Play负责组织和举办电子竞技赛事&#xff0c;并提供在线直播。在所有电子竞技平台中&#xff0c;收看时间长期位居行业第一。其举办赛事覆盖PS、PC、移动端等多个平台。ESL Asia是ESL Pl…