SteelPython
你熟悉的 Python,运行在 .NET 上。
SteelPython 是 Methodox Technologies, Inc. 开发的 Python 3.12 实现。它可以运行 Python 语言、标准库以及你已经在用的包——包括其中含有编译代码的包,例如 numpy、pandas、scikit-learn、matplotlib 和 PyTorch(也支持 GPU)。而且由于它运行在 .NET 上,Python 和 C# 可以在同一个进程中直接相互调用,无需任何桥接。

- 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。