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);
    }
}

 

控制台輸出結果為如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM