zoukankan      html  css  js  c++  java
  • Jython的应用

    今天本文围绕主要内容是jython是什么、安装、简单实用。

    另外说说我为什么研究jython,研究它是有一个目的的,目的是将python代码转化为jar包以供安卓方面那边人脸识别,虽说目前人脸识别像阿里、腾讯、百度做的都挺好的,有现成的可以使用,不必重复造轮子,但是我们经理需要我们技术人员对于相关的技术必须要了解和熟悉,假设抽象层为1,2,3,4,5,6等,BAT公司做到的抽象我假定为5,5基本上只需调用API就行,其他都不用管,当然了,还有些需要参考一下文档。而我们经理他需要我们做到3或者4,可以自己定义人脸识别的程度,当然了,还是在现在的开源项目基础上,算是一个半自动化造轮子。

    接下来开始进入主题。

    一、Jython是什么

    Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。Jython也有很多从CPython中继承的模块库。最有趣的事情是Jython不像CPython或其他任何高级语言,它提供了对其实现语言的一切存取。所以Jython不仅给你提供了Python的库,同时也提供了所有的Java类。这使其有一个巨大的资源库。

    二、Jython的安装

    Jython官方网站:http://www.jython.org/

    我个人是在window10环境下进行安装的,我觉得详细安装,大家可以参考这个链接:https://jingyan.baidu.com/article/b24f6c822a5abb86bfe5dae4.html

    所以关于安装方面的我就不详细说了。

    另外补充一点,我是安装在c盘下,但是并没有放在Programe File下面,而是新建一个文件夹并将其放在下面,如果你们觉得环境变量配置麻烦的话,可以在自定义路径时,放在Programe File下面。

    三、简单使用

    1.命令行使用

    hello.py文件内容

    print('hello world')

    新建一个简单的Python文件,通过命令行 jython hello.py 即可运行输出对应的hello world

    2.Eclipse中新建maven项目使用

    hello.py

    def hello():
        return 'Hello'
        
    def hello2():
        return "Hello yc"

    pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>cn.jpython.demo</groupId>
      <artifactId>JPythonDemo</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      
      <dependencies>
      
        <dependency>
        <groupId>org.python</groupId>
        <artifactId>jython-standalone</artifactId>
        <version>2.7.0</version>
    </dependency>
      
    </dependencies>
      
      
    </project>

    HelloPython.java

    package cn.test;
    import org.python.core.PyFunction;
    import org.python.core.PyObject;
    import org.python.util.PythonInterpreter;
    
    public class HelloPython {
        public static void main(String[] args) {
            PythonInterpreter interpreter = new PythonInterpreter();
            interpreter.execfile("C:/Users/eluzhu/Desktop/hello.py");
    
            PyFunction pyFunction = interpreter.get("hello2", PyFunction.class); // 第一个参数为期望获得的函数(变量)的名字,第二个参数为期望返回的对象类型
            PyObject pyObject = pyFunction.__call__(); // 调用函数
    
            System.out.println(pyObject);
        }
    }

    控制台输出结果为如下:

  • 相关阅读:
    Luogu 4206 [NOI2005]聪聪与可可
    【Luogu】P3708Koishi的数字游戏(数论)
    【Luogu】P1850换教室(期望DP)
    【Luogu】P1231教辅的组成(拆点+Dinic+当前弧优化)
    【Luogu】P3865ST表模板(ST表)
    【Luogu】P3376网络最大流模板(Dinic)
    【Luogu】P1005矩阵取数游戏(高精度+DP)
    【Luogu】P2324骑士精神(IDA*)
    【Luogu】P3052摩天大楼里的奶牛(遗传算法乱搞)
    洛森地图半成品
  • 原文地址:https://www.cnblogs.com/youcong/p/10089579.html
Copyright © 2011-2022 走看看