我想从我的lua文件中运行一个python脚本.我怎样才能做到这一点?
例:
Python代码
#sum.py file def sum_from_python(a,b) return a+b
Lua代码
--main.lua file print(sum_from_python(2,3))
greatwolf.. 7
听起来像Lunatic-Python正是你正在寻找的.有一个疯子蟒蛇的分叉比原来更好.我自己曾经为自己做过几次错误修复.
所以重复你的例子,
# sum.py def sum_from_python(a, b): return a + b
-- main.lua py = require 'python' sum_from_python = py.import "sum".sum_from_python print( sum_from_python(2,3) )
lua main.lua 5
大多数东西都像你期望的那样工作但是疯狂蟒蛇有一些限制.
它不是真正的线程安全.在lua中使用python线程库会产生意外行为.
无法使用lua中的关键字参数调用python函数.一个想法是通过传递一个表来模仿lua,但我从来没有实现过.
与lupa不同,lunatic-python只有一个全局lua状态和一个python VM上下文.因此,您无法使用lunatic-python创建多个VM运行时.
至于lupa,请注意它只是一个python模块,这意味着你必须使用python作为宿主语言 - 它不支持lua是"驱动"语言的用例.例如,您将无法使用lua解释器中的lupa或嵌入lua的C/C++应用程序.OTOH,Lunatic-Python可以从桥的任何一侧驱动.
听起来像Lunatic-Python正是你正在寻找的.有一个疯子蟒蛇的分叉比原来更好.我自己曾经为自己做过几次错误修复.
所以重复你的例子,
# sum.py def sum_from_python(a, b): return a + b
-- main.lua py = require 'python' sum_from_python = py.import "sum".sum_from_python print( sum_from_python(2,3) )
lua main.lua 5
大多数东西都像你期望的那样工作但是疯狂蟒蛇有一些限制.
它不是真正的线程安全.在lua中使用python线程库会产生意外行为.
无法使用lua中的关键字参数调用python函数.一个想法是通过传递一个表来模仿lua,但我从来没有实现过.
与lupa不同,lunatic-python只有一个全局lua状态和一个python VM上下文.因此,您无法使用lunatic-python创建多个VM运行时.
至于lupa,请注意它只是一个python模块,这意味着你必须使用python作为宿主语言 - 它不支持lua是"驱动"语言的用例.例如,您将无法使用lua解释器中的lupa或嵌入lua的C/C++应用程序.OTOH,Lunatic-Python可以从桥的任何一侧驱动.