1

我正在尝试在 Lupa 运行时添加加载套接字库。

我用 Luarocks 安装了套接字,所以我需要附加必要的路径。

>>> 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):

链接器错误 Lua.require('socket') -> 未定义符号:lua_getmetatable

据我了解,liblua5.3.so 存在链接问题?

任何帮助将不胜感激。

谢谢,亚历克斯

4

1 回答 1

1

事实证明,Lupa 是针对 Lua 5.2 构建的。

我包含了 5.3 模块的路径 - 它似乎使用 5.2 并在 5.2 中安装套接字模块解决了我的问题。

于 2015-07-10T21:28:15.453 回答