繁體中文
English 简体中文 繁體中文
Methodox 首頁

SteelPython

你熟悉的 Python,執行在 .NET 上。

SteelPython 是 Methodox Technologies, Inc. 開發的 Python 3.12 實現。它可以執行 Python 語言、標準庫以及你已經在用的包——包括其中含有編譯程式碼的包,例如 numpy、pandas、scikit-learn、matplotlib 和 PyTorch(也支援 GPU)。而且由於它執行在 .NET 上,Python 和 C# 可以在同一個程序中直接相互呼叫,無需任何橋接。

Misp(SteelPython 的 IDE)在迴圈內的斷點處暫停:目前行被高亮,Debug 面板顯示呼叫堆疊和該函式的區域變數

  • Python 版本: 3.12
  • 平臺: Windows,64 位
  • 計劃隨附於: Divooka Compute

取得 SteelPython

SteelPython 計劃隨 Steam 上的 Divooka Compute 一同提供,並且只作為其一部分公開提供,不單獨提供下載。Divooka Compute 計劃包含 SteelPython、它的 IDE 和它的筆記本。

獨立的 SteelPython SDK——帶安裝程式的獨立直譯器,以及用於將 SteelPython 整合到你自己應用程式中的 .NET 包——面向企業使用者提供。詳情請傳送郵件至 contact@methodox.io。

包含哪些內容

spy 直譯器:相當於 python。可使用 spy script.py、spy -m module、spy -c "...",或直接輸入 spy 進入互動式提示符。
Misp 一款 Python IDE:編輯器、支援斷點和單步執行的偵錯程式、虛擬環境和包管理。
Spy Notebook 由 Python 和 Markdown 儲存格組成的筆記本,以純 Markdown 格式儲存,也能開啟 Jupyter 筆記本。
pip 和 venv 從 PyPI 安裝包、建立虛擬環境,方法與 CPython 完全相同。
.NET 在 Python 中通過 import clr 使用任意 .NET 庫,並用 C# 編寫擴充。

它真的是 Python 嗎?

是的。SteelPython 遵循 CPython 3.12:相同的語法、相同的內建型別和行為,以及 CPython 自己的標準庫。它使用 CPython 自己的測試套件進行檢驗,並且有一百多個流行的 PyPI 包——numpy、pandas、scipy、scikit-learn、matplotlib、PyTorch、polars、pydantic、Flask、FastAPI、Django 等——在它上面執行並與 CPython 對比。包從 CPython 所用的同一批 wheel 安裝,因此無需編譯任何東西。

不過它並不是 CPython,有少數行為有所不同:最值得注意的是,執行緒真正並行執行(沒有全域直譯器鎖),物件由 .NET 垃圾回收器釋放,而不是在最後一個引用消失的那一刻釋放。所有不同之處都列在 與 CPython 的差異 中。

指南

頁面 涵蓋內容
入門 找到 spy、互動式提示符、執行指令碼和模組、命令列
與 CPython 的差異 哪些行為不同、缺少什麼,以及對效能的預期
包與環境 pip、虛擬環境、二進位制 wheel、PyTorch 的 GPU 版本、從原始碼構建
Misp IDE:編輯、執行、除錯、直譯器和包
Spy Notebook 筆記本:儲存格、核心、檔案格式、Jupyter 匯入和匯出
在 Python 中使用 .NET import clr:.NET 型別、泛型、事件、非同步任務、型別轉換和異常
編寫擴充 用 C(CPython C API)和 C# 編寫擴充模組
嵌入到 C# 中 使用 SteelPython SDK 在 .NET 應用程式中執行 Python

學習 Python 本身

本指南介紹的是 SteelPython 特有的內容。關於語言和標準庫,CPython 官方文件完全適用:

凡是這些頁面中寫 python 的地方,請使用 spy。