如何从Lua调用Python函数?

 双手描绘我们的幸福_688 发布于 2023-02-12 17:23

我想从我的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正是你正在寻找的.有一个疯子蟒蛇的分叉比原来更好.我自己曾经为自己做过几次错误修复.

所以重复你的例子,

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

大多数东西都像你期望的那样工作但是疯狂蟒蛇有一些限制.

    它不是真正的线程安全.在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可以从桥的任何一侧驱动.

1 个回答
  • 听起来像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
    

    大多数东西都像你期望的那样工作但是疯狂蟒蛇有一些限制.

      它不是真正的线程安全.在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可以从桥的任何一侧驱动.

    2023-02-12 17:26 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有