Graalpy面向 Java 的高性能嵌入式 Python 3 运行时

9 阅读1分钟

image.png

面向 Java 的高性能嵌入式 Python 3 运行时

1. 优势特性

1.1 Python for Java

在 Java 中直接加载和使用 Python 包

1.2 Python 3 兼容

与众多 Python 包兼容,包括流行的 AI 和数据科学库

1.3 JVM 上最快的 Python

Graal JIT 将 Python 编译为原生代码速度

1.4 JVM 上的现代 Python

GraalPy 为 Jython 用户提供升级路径

1.5 用 Python 为 Java 编写脚本

使用与 Java 互操作的 Python 脚本扩展应用程序

1.6 简单分发

使用 GraalVM Native Image 将 Python 应用程序打包为单个二进制文件

2. 如何开始

您可以选择使用 Python 扩展您的 Java 应用程序,或者直接使用启动项目

2.1. 从 Maven Central 添加 GraalPy 作为依赖项

<dependency>
  <groupId>org.graalvm.polyglot</groupId>
  <artifactId>polyglot</artifactId> 
  <version>25.0.0</version>
</dependency>
<dependency>
  <groupId>org.graalvm.polyglot</groupId>
  <artifactId>python</artifactId> 
  <version>25.0.0</version>
  <type>pom</type>
</dependency>

或者

implementation("org.graalvm.polyglot:polyglot:25.0.0")
implementation("org.graalvm.polyglot:python:25.0.0")

2.2. 在 Java 中嵌入 Python 代码

import org.graalvm.polyglot.Context;

try (Context context = Context.create()) {
    context.eval("python", "print('Hello from GraalPy!')");
}

2.3. 为额外的 Python 包添加 GraalPy 插件(可选)

<plugin>
  <groupId>org.graalvm.python</groupId>
  <artifactId>graalpy-maven-plugin</artifactId>
  <version>25.0.0</version>
  <executions>
    <execution>
      <configuration>
        <packages>
          <!-- 选择要通过 pip 安装的 Python 包。 -->
          <package>pyfiglet==1.0.2</package>
        </packages>
      </configuration>
      <goals>
        <goal>process-graalpy-resources</goal>
      </goals>
    </execution>
  </executions>
</plugin>

或者

plugins {
    id("org.graalvm.python") version "25.0.0"
}

graalPy {
    packages = setOf("pyfiglet==1.0.2")
}

3. 指南

在 Java SE 应用程序中使用 Maven 或 Gradle 与 GraalPy

将 GraalPy 与 Spring Boot 一起使用

将 GraalPy 与 Micronaut 一起使用

手动安装 Python 包和文件

从 Jython 迁移到 GraalPy

冻结传递性 Python 依赖项以实现可重现构建

使用 GraalPy Maven 插件安装 Python 原生扩展

4. 演示项目

GraalPy OpenAI 启动项目

GraalPy JBang 二维码

使用 GraalPy 和 Spring Boot 的 SVG 图表

使用 GraalPy 和 Micronaut 的 SVG 图表