Python中的Lua解析器
我正在考虑在一个网页项目中使用Lua语言。但是我找不到直接在纯Python中解析和运行Lua代码的方法。
有没有人知道该怎么做呢?
乔
3 个回答
1
@the_drow
来自Lua官网的介绍:
Lua是一种快速的编程语言引擎,占用空间小,可以很方便地嵌入到你的应用程序中。Lua有一个简单且文档齐全的接口,能够与其他语言编写的代码紧密结合。用其他语言编写的库可以很容易地扩展Lua。同时,也可以很方便地用Lua来扩展用其他语言编写的程序。Lua不仅被用来扩展C和C++编写的程序,还可以用于Java、C#、Smalltalk、Fortran、Ada、Erlang,甚至其他脚本语言,比如Perl和Ruby。
@Joe Simpson
可以看看Lunatic Python,它可能有你想要的东西。我知道这是个老问题,但其他人也可能在寻找这个答案。这是个好问题,值得一个好的答案。
2
从你的评论来看,你似乎对安全地执行不可信代码很感兴趣。
你在评论中提到的重新定义Python内置函数,这种做法其实是个糟糕的安全措施。
你真正需要的是“沙箱”技术,这是一种隔离执行环境的方法。虽然Python有一些解决方案,但我不太推荐。使用Jython或IronPython会更好,因为Java虚拟机(JVM)和.NET的公共语言运行库(CLR)在设计时就考虑到了沙箱的安全性。
我个人认为,在大多数情况下,如果你需要执行不可信的代码,那说明你对用户的信任程度可能过高或过低。
0
有一个项目叫做 pylux,它可以把Lua语言嵌入到Python中。不过这个项目看起来有点不活跃,但也许值得你去看看。