支持开源并创建工具,使人们能够用更少的资源做更多的事情,这就是我近八年来加入 Anaconda 的原因。
今天,在美国 PyCon 2022 大会上,我很高兴地发布我们 Anaconda 团队一直在开发的一个新项目。我们对这个项目抱有很高的期望,希望它能够帮助 Python 向更广泛的受众普及编程和数据科学。
向 PyScript 说 hello
PyScript 是一个框架,允许用户使用 Python 与标准 HTML 的组合,在浏览器中创建丰富的 Python 应用程序。PyScript 旨在为用户提供一个一流的编程语言,该语言具有一致的样式规则,更具表现力,并且更容易学习。
什么是 PyScript?以下是它的核心组件
-
浏览器中的 Python:启用嵌入式内容、外部文件托管(由 Pyodide 项目支持,感谢!),以及无需依赖服务器端配置的应用程序托管
-
Python 生态系统:运行许多流行的 Python 软件包和科学堆栈(例如 numpy、pandas、scikit-learn 等)
-
Python 与 JavaScript:Python 和 Javascript 对象与命名空间之间的双向通信
-
环境管理:允许用户定义要包含哪些软件包和文件以运行页面代码
-
可视化应用程序开发:使用现成的精选 UI 组件,例如按钮、容器、文本框等
-
灵活的框架:一个灵活的框架,可以用来直接在 Python 中创建和共享新的可插入和可扩展组件
总而言之,PyScript 只是 HTML,只不过由于 Python 库丰富且易于访问的生态系统,它变得更加强大(好吧,可能强大得多)。
为 99% 的人编程
我们希望提供一个可靠且易于访问的框架,用于创建和向任何硬件和软件平台交付应用程序,同时保持乐趣。在追求这一目标的过程中,我们不想创建全新的技术栈。我们希望从今天生态系统提供的最佳选择开始。
寻找完美的平台来构建非常困难。一方面,我们已经创造了更优雅的语言,并且使事物变得更快、更大、更具可扩展性;另一方面,使这些进步成为可能的周边技术反映在其底层基础设施的复杂性中。
但随后,我们灵机一动。
我们相信,只要稍微灵活一些,浏览器将是一个非常棒的平台,我们可以对其进行调整,以实现我们为 PyScript 用户提供可靠、易于访问且有趣的体验的目标。浏览器在任何地方都能正常工作(从笔记本电脑、平板电脑到手机),并且安全、强大且稳定。在我们看来,它是执行 PyScript 目标的完美起点。
PyScript 的目标
-
提供一个干净且简单的 API
-
支持标准 HTML
-
扩展 HTML 以读取经过精心设计且可靠的自定义组件
-
提供一个可插入和可扩展的组件系统
PyScript 建立在巨人的肩膀上
有很多因素使浏览器成为一个非常可靠的堆栈,例如 WebAssembly/WASM、Emscripten 和 Pyodide 的进步。尽管浏览器传统上不被认为是虚拟机,但它是一个极好的虚拟机。
不幸的是,在过去的几十年中,Python 和现代 HTML、CSS 和 JavaScript 等强大的 UI 语言并没有互相利用。Python 没有直接的方法来构建优雅的 UI 以轻松打包和部署应用程序;而现代 HTML、CSS 和 JavaScript 则面临着学习曲线陡峭的挑战。
允许 Python 利用 HTML、CSS 和 JavaScript 约定,不仅解决了这两个挑战,而且还解决了通用 Web 应用程序的构建、打包、分发和部署挑战(一个巨大的 PITA)!总的来说,我们希望看到 HTML、CSS 和 JavaScript 的流行度和采用率与 Python 一同提高,最终使 Web 成为一个对每个人来说更加友好和可破解的地方。
PyScript 现在怎么样了?
这仅仅是 PyScript 的开始,我们对 PyScript 的愿景远远超出了我们今天能够展示的范围。虽然它仍然不稳定且有限,但它确实有效!
不信?请访问 https://pyscript.net/examples/ 亲眼看看!有关如何开始使用 PyScript 以及查看最新进展的更多信息,请访问 pyscript.net。
让我们构建更多酷炫的东西
我真的很喜欢将 PyScript 视为“软件开发中的 Minecraft”:用户创建自己的世界(应用程序)或新的方块和模组(组件和小部件),并与全世界分享。
这是支持新的编程、构建、共享和部署应用程序方式的激动人心的开端。最终,我们应该将时间花在思考和编写应用程序来解决我们遇到的真正问题上,而不是处理平凡的硬件引起的挑战。让我们让编程变得更有趣更简单。
要了解有关 PyScript 工作原理的更多信息,请访问我们的 技术博客。
谢谢!
没有一些非凡人士的帮助,PyScript 今天就不会存在。
衷心感谢以下人士对该项目的贡献并帮助推动它
- Peter Wang、Kevin Goldsmith、Philipp Rudiger、Antonio Cuni、Russel Keith-Magee、Mateusz Paprocki、Princiya Sequeria、Jannis Leidel、David Mason、Michael Verhulst 和 Chris Leonard
特别感谢 Pyodide 的维护人员
- Hood 和 Roman Yurchak 以及所有 Pyodide 贡献者