Python Lupa包连接到liblua5.3.so吗?

我试图在 Lupa 运行时中添加加载 socket 库。

我使用 Luarocks 安装了 socket,因此需要附加必要的路径。

>>> import lupa
>>> sys.setdlopenflags(orig_dlflags)
>>> lua = lupa.LuaRuntime()
>>> lua.execute("package.cpath = package.cpath ..';/root/.luarocks/lib/lua/5.3/?.so;/usr/local/lib/lua/5.3/?.so;/usr/local/lib/lua/5.3/loadall.so;./?.so'")
>>> lua.execute("  package.path = package.path ..';/root/.luarocks/share/lua/5.3/?.lua;/root/.luarocks/share/lua/5.3/?/init.lua;/usr/local/share/lua/5.3/?.lua;/usr/local/share/lua/5.3/?/init.lua;/usr/local/lib/lua/5.3/?.lua;/usr/local/lib/lua/5.3/?/init.lua;./?.lua;./?/init.lua'")
>>> lua.require("socket")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "lupa/_lupa.pyx", line 268, in lupa._lupa.LuaRuntime.require    (lupa/_lupa.c:4683)
File "lupa/_lupa.pyx", line 1245, in lupa._lupa.call_lua (lupa/_lupa.c:17287)
File "lupa/_lupa.pyx", line 1254, in lupa._lupa.execute_lua_call (lupa/_lupa.c:17400)
File "lupa/_lupa.pyx", line 1207, in lupa._lupa.raise_lua_error (lupa/_lupa.c:16746)
lupa._lupa.LuaError: error loading module 'socket.core' from file '/usr/local/lib/lua/5.3/socket/core.so':
/usr/local/lib/lua/5.3/socket/core.so: undefined symbol: lua_rotate

这里提到了一个类似的问题,但提出的解决方案对我似乎不起作用(我正在运行 Ubuntu):

链接错误 Lunatic Python lua.require('socket') -> undefined symbol: lua_getmetatable

据我理解,存在与 liblua5.3.so 进行链接的问题?

非常感谢您的任何帮助。

谢谢, Alex

点赞
用户1189959
用户1189959

报告

原来 Lupa 是基于 Lua 5.2 构建的。

我一直在引入 5.3 版本的模块路径,但是现在看来使用 5.2 并在 5.2 中安装 sockets 模块已经解决了我的问题。

2015-07-10 21:28:15