我想从我的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))
答案 0 :(得分:5)
听起来像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
大部分内容都按照您的预期运行,但是对于疯狂蟒蛇有一些限制。
至于lupa,请注意它只是一个 python模块,这意味着你必须使用python作为宿主语言 - 它不支持lua是“驱动”的用例语言。例如,您将无法使用lua解释器中的lupa或嵌入lua的C / C ++应用程序。 OTOH,Lunatic-Python可以从桥的任何一侧驱动。
答案 1 :(得分:3)
我认为这些是您的选择:
不要这样做:我同意别人的建议,你应该找到一种方法在纯Lua中做到这一点,但也许你真的需要整合这两者。
您可以使用SWIG(www.swig.org)将Lua C API导出到Python。您可以通过使用C ++绑定(如lua-icxx.sf.net)节省一些时间,但这实际上取决于您的要求。
您可以使用现有的库;疯狂的蟒蛇死了AFAIK,但LUPA看起来身体健康(https://pypi.python.org/pypi/lupa)。
答案 2 :(得分:1)
您可以尝试this库或编写一些特定于您的项目的桥接器,但这需要熟悉Lua C-API和Python C-API。