简体中文
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。