【问题标题】:Is it possible to embed MicroPython into a CPython application?是否可以将 MicroPython 嵌入到 CPython 应用程序中?
【发布时间】:2019-10-31 02:26:54
【问题描述】:

内存布局有很大不同吗? CPython 和 MicroPython 之间共享对象难吗?

背景是我想像 LUA 一样使用 Python。使用完整的 CPython eval()exec() 太危险了,我希望我可以拥有一个简化的 Python 版本,它是沙盒的,并且无法访问我的操作系统的系统调用。

【问题讨论】:

标签: micropython


【解决方案1】:

CPython 和 MicroPython(以及与此相关的许多其他实现)不共享任何实现细节,因此将对象从一个传递到另一个需要转换 C 中的类型。我认为沙盒方面与您使用哪个 Python 版本,即 micropython 是用 C 语言编写的,就像 CPython 一样,因此为了沙箱化并避免访问任何功能,您需要外部组件或其他措施来支持它。例如,MicroPython 也有 exec/eval,如果您不希望将它们排除在编译成可执行文件之外,例如 CPython。

【讨论】:

  • 另一方面,如果您确实想要 exec 但不希望它有危险(例如通过可能调用 os system),那么您可以禁用 os 模块.一般来说,使用 MicroPython 就可以实现这种类型的沙箱。
猜你喜欢
  • 2011-08-30
  • 2018-11-15
  • 1970-01-01
  • 1970-01-01
  • 2021-10-02
  • 2017-10-30
  • 2012-10-09
  • 1970-01-01
相关资源
最近更新 更多