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 に答える