- 適用於 JDK 23 的 GraalVM (最新)
- 適用於 JDK 24 的 GraalVM (搶先體驗)
- 適用於 JDK 21 的 GraalVM
- 適用於 JDK 17 的 GraalVM
- 封存
- 開發版本
GraalPy 作為 CPython 的替代方案
選擇 GraalPy 執行時 #
GraalPy 提供一個與 Python 3.11 相容的執行時。主要目標是支援 PyTorch、SciPy 及其組成庫,以及使用來自豐富 Python 生態系統的其他資料科學和機器學習庫。GraalPy 作為預先編譯的原生執行檔發布,體積小巧。
GraalPy 提供以下功能
- CPython 的替代方案。使用 GraalPy 作為 CPython 的替代方案。它是最相容的,因為它最接近 CPython 安裝套件的結構。
- Python 應用程式的獨特部署模式。在 GraalPy 上將 Python 應用程式編譯為單個原生二進位檔,其中嵌入了所有需要的資源。
- 存取 GraalVM 的語言生態系統和工具。GraalPy 可以運行許多標準 Python 工具以及來自 GraalVM 生態系統的工具。
GraalPy 發行版本 #
GraalPy 可用作在 Oracle GraalVM 上建置的 GraalPy 和 GraalPy Community。
-
在 Oracle GraalVM 之上建置的 GraalPy 提供最佳體驗:它具有額外的最佳化,速度顯著更快,記憶體效率更高。它根據 GraalVM 免費條款和條件 (GFTC) 授權,與 Oracle GraalVM 相同,允許任何使用者使用,包括商業和生產用途。允許重新分發,只要不收取費用。
-
GraalPy Community 是在 GraalVM Community Edition 之上建置的,並且是完全開源的。
GraalPy 的 Oracle 和 Community 發行版本都有兩種語言執行時選項
- 原生
- GraalPy 預先編譯為原生執行檔。
- 這表示您不需要 JVM 來運行 GraalPy,而且它體積小巧。
- JVM
- 您可以輕鬆利用 Java 的互通性。
- 峰值效能可能高於原生選項。
GraalPy 識別 #
使用一般模式graalpy(-community)(-jvm)-<版本>-<作業系統>-<架構>,可以識別四種 GraalPy 執行時
Oracle | 社群 | |
---|---|---|
原生 | graalpy-<版本>-<作業系統>-<架構> | graalpy-community-<版本>-<作業系統>-<架構> |
JVM | graalpy-jvm-<版本>-<作業系統>-<架構> | graalpy-community-jvm-<版本>-<作業系統>-<架構> |
比較 #
執行時 | 原生 (預設) | JVM |
---|---|---|
啟動時間 | 更快 | 更慢 |
達到峰值效能的時間 | 更快 | 更慢 |
峰值效能 (也考慮 GC) | 良好 | 最佳 |
Java 互通性 | 需要設定 | 運作 |
安裝 GraalPy #
注意:GraalPy 發布與在 Pyenv 上可用之間會有延遲。
Linux #
在 Linux 上安裝 GraalPy 的最簡單方法是使用 Pyenv (Python 版本管理員)。若要使用 Pyenv 安裝 24.1.0 版本,請執行以下命令
pyenv install graalpy-24.1.0
pyenv shell graalpy-24.1.0
在執行
pyenv install
之前,您可能需要更新pyenv
以包含最新的 GraalPy 版本。
或者,您可以從 GitHub 版本下載壓縮的 GraalPy 安裝檔案。
- 找到符合模式graalpy-XX.Y.Z-linux-amd64.tar.gz或graalpy-XX.Y.Z-linux-aarch64.tar.gz (取決於您的平台) 的下載檔案並下載。
- 解壓縮檔案並更新您的
PATH
環境變數,以包含 graalpy-XX.Y.Z-linux-amd64/bin (或 graalpy-XX.Y.Z-linux-aarch64/bin) 目錄。
注意:在 Oracle Linux 9 上,還需要安裝
libxcrypt
程式庫,這是 GraalPy 原生執行時所需要的:yum install libxcrypt-compat
。
macOS #
在 macOS 上安裝 GraalPy 的最簡單方法是使用 Pyenv (Python 版本管理員)。若要使用 Pyenv 安裝 24.1.0 版本,請執行以下命令
pyenv install graalpy-24.1.0
pyenv shell graalpy-24.1.0
在執行
pyenv install
之前,您可能需要更新pyenv
以包含最新的 GraalPy 版本。
或者,您可以從 GitHub 版本下載壓縮的 GraalPy 安裝檔案。
- 找到符合模式graalpy-XX.Y.Z-macos-amd64.tar.gz或graalpy-XX.Y.Z-macos-aarch64.tar.gz (取決於您的平台) 的下載檔案並下載。
- 移除隔離屬性。
sudo xattr -r -d com.apple.quarantine /path/to/graalpy
例如
sudo xattr -r -d com.apple.quarantine ~/.pyenv/versions/graalpy-24.1.0
- 解壓縮檔案並更新您的
PATH
環境變數,以包含 graalpy-XX.Y.Z-macos-amd64/bin (或 graalpy-XX.Y.Z-macos-aarch64/bin) 目錄。
Windows #
- 從 GitHub 版本找到並下載符合模式 graalpy-XX.Y.Z-windows-amd64.tar.gz 的壓縮 GraalPy 安裝檔案。
- 解壓縮檔案並更新您的
PATH
變數,以包含 graalpy-XX.Y.Z-windows-amd64/bin 目錄。
Windows 限制
GraalPy 的 Windows 發行版本比其 Linux 或 macOS 版本有更多限制,因此並非所有功能和套件都可用。
它有以下已知問題
- JLine 將 Windows 視為啞終端,在 REPL 中沒有自動完成和有限的編輯功能
- REPL 中的互動式
help()
無法運作 - 在虛擬環境中
- graalpy.cmd 和 graalpy.exe 已損壞
- 無法直接使用 pip.exe
pip
在載入快取檔案時遇到問題,請使用--no-cache-dir
- 只能安裝純 Python 二進位輪,不能安裝原生擴充功能或原始碼組建
- 若要安裝套件,請使用
myvenv/Scripts/python.exe -m pip --no-cache-dir install <pkg>
- 從 PowerShell 執行比從 CMD 執行更好,各種腳本在後者上會失敗
安裝套件 #
使用 GraalPy 的最佳方式是從 venv 虛擬環境。這會產生包裝器腳本,並使該實作可從 shell 作為標準 Python 直譯器使用。
- 執行以下命令,使用 GraalPy 建立虛擬環境
graalpy -m venv <venv-dir>
例如
graalpy -m venv ~/.virtualenvs/graalpy-24.1.0
- 在您的 shell 會話中啟動環境
source <venv-dir>/bin/activate
例如
source ~/.virtualenvs/graalpy-24.1.0/bin/activate
虛擬環境中有多個可執行檔,包括:python
、python3
和 graalpy
。
注意:若要停用 Python 環境 (並返回您的 shell),請執行
deactivate
。
使用虛擬環境時,可以使用 pip
套件安裝程式。GraalPy 的 pip
實作可能會選擇其他套件版本,而不是最新的版本,以便更好地運作。