我正在使用 Mac OSX。我通过brew和Luarocks安装了Lua。我也安装了 lua sockets 包。
当我local http = require("socket")从终端 lua 命令行界面调用时,模块加载正常。
但是,当我将其包含local http = require("socket")在 wrk 测试脚本中时,我不仅会收到套接字错误,还会收到其他模块的错误。看来我的系统上没有使用 Lua。
有没有办法为wrk安装依赖模块?
package.searchpath( "socket", package.path )回报/usr/local/share/lua/5.2/socket.lua
这是错误参考
scripts/get_call_setup.lua: scripts/get_call_setup.lua:1: module 'socket' not found:
no field package.preload['socket']
no file './socket.lua'
no file '/Users/sak/go/src/personal/wrk/obj/share/luajit-2.0.4/socket.lua'
no file '/usr/local/share/lua/5.1/socket.lua'
no file '/usr/local/share/lua/5.1/socket/init.lua'
no file '/Users/sak/go/src/personal/wrk/obj/share/lua/5.1/socket.lua'
no file '/Users/sak/go/src/personal/wrk/obj/share/lua/5.1/socket/init.lua'
no file './socket.so'
no file '/usr/local/lib/lua/5.1/socket.so'
no file '/Users/sak/go/src/personal/wrk/obj/lib/lua/5.1/socket.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
Running 3s test @ https://ccx-courier-stage.adobe.io
Run Code Online (Sandbox Code Playgroud)
小智 1
确保 Luarocks 配置正确并且luarocks安装目标位于您的路径中。
在终端中,运行以下代码将已安装的库添加到您的路径中。
eval "$(luarocks path)"
Run Code Online (Sandbox Code Playgroud)
然后运行你的代码:
lua myscript.lua
Run Code Online (Sandbox Code Playgroud)
除此之外,您的软件包安装的目的是lua 5.2:
package.searchpath( "socket", package.path ) returns /usr/local/share/lua/5.2/socket.lua
Run Code Online (Sandbox Code Playgroud)
但是你运行你的代码lua 5.1:
no file '/usr/local/share/lua/5.1/socket.lua'
Run Code Online (Sandbox Code Playgroud)
安装套接字,lua 5.1然后运行您的代码,或者lua 5.2如果所有库都安装了,则运行您的脚本lua 5.2。
lua5.2 myscript.lua
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1599 次 |
| 最近记录: |