2

我有一些 lua 代码示例。例如:

for i=1,4 do
   print(i)
end

我需要在 Python 3.4 上使用Lupa库来执行它。

为此,我编写了以下代码:

import lupa
lua = lupa.LuaRuntime(unpack_returned_tuples=True)
lua.eval(open('test.lua').read())

test.lua我的示例 lua 文件在哪里。

但是,如果我尝试执行此代码,我会得到以下信息:

Traceback (most recent call last):
  File "/Job/HW-2/testing/test1.py", line 3, in <module>
    lua.eval(open('test.lua').read())
  File "lupa/_lupa.pyx", line 251, in lupa._lupa.LuaRuntime.eval (lupa/_lupa.c:4579)
  File "lupa/_lupa.pyx", line 1250, in lupa._lupa.run_lua (lupa/_lupa.c:18295)
lupa._lupa.LuaSyntaxError: error loading code: [string "<python>"]:1: unexpected symbol near 'for'

看来,这是一个非常简单的问题,但我不知道如何解决它。那么,如何使用 Lupa 在 Python 3 上执行 Lua 文件?

4

1 回答 1

3

eval方法需要一个返回值的 Lua 表达式。为了执行 Lua 语句,请execute改为调用:

>>> lua.execute("""for i=1,4 do
...    print(i)
... end""") 
1
2
3
4
于 2016-02-18T21:28:30.380 回答