2015-07-10 36 views
1

我正試圖在Lupa運行庫中加載套接字庫。Python Lupa包鏈接到liblua5.3.so?

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

Linker Error Lunatic Python lua.require('socket') -> undefined symbol: lua_getmetatable

從我的理解,有一個連接問題liblua5.3.so?

任何幫助將不勝感激。

謝謝, 亞歷克斯

+1

lupa是什麼版本的lupa是針對? –

+0

啊 - 我想你可能已經解決了我的問題。看起來Lupa是建立在5.2之上的,而我現在正在運行5.3。讓我做一些調查 - 我在某人的Docker容器之上構建... – izyda

回答

1

事實證明,盧帕是對的Lua 5.2建成。

我包含了5.3模塊的路徑 - 它出現使用5.2並在5.2中安裝套接字模塊解決了我的問題。