gpt4 book ai didi

python - 如何从 Lua 调用 Python 函数?

转载 作者:太空狗 更新时间:2023-10-29 18:04:43 24 4
gpt4 key购买 nike

我想从我的 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))

最佳答案

听起来 Lunatic-Python 完全符合您的要求。有一个 fork lunatic-python这比原来的维护得更好。不久前,我自己修复了几个错误。

所以重用你的例子,

Python代码:

# sum.py
def sum_from_python(a, b):
return a + b

Lua代码:

-- main.lua
py = require 'python'

sum_from_python = py.import "sum".sum_from_python
print( sum_from_python(2,3) )

输出:

lua main.lua
5

大部分内容都按您预期的那样工作,但 lunatic-python 有一些限制。

  1. 它并不是真正的线程安全。在 lua 中使用 python 线程库会出现意外行为。
  2. 无法从 lua 调用带有关键字参数的 python 函数。一个想法是通过传递一个表在 lua 中模拟这一点,但我一直没有抽出时间来实现它。
  3. 与 lupa 不同,lunatic-python 只有一个全局 lua 状态和一个 python VM 上下文。所以你不能使用 lunatic-python 创建多个 VM 运行时。

至于 lupa,请注意它只是一个 python 模块,这意味着您必须使用 python 作为宿主语言——它不支持 lua 是“驱动”的用例语。例如,您将无法从 lua 解释器或嵌入 lua 的 C/C++ 应用程序中使用 lupa。 OTOH,Lunatic-Python 可以从桥的任一侧驱动。

关于python - 如何从 Lua 调用 Python 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20400390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com