【问题标题】:Installing Lua socket library安装 Lua 套接字库
【发布时间】:2012-04-27 19:28:57
【问题描述】:

我不是太累了就是瞎了。我想用 Lua 学习网络,因此我必须安装 socket lib,所以我可以轻松地要求它,但我不知道我应该“要求”哪些文件。例子说:

local socket = require("socket")

但正如我所说,我不知道应该包含哪些文件,如果我使用 socket.lua 它不起作用,我得到:No files found

我从这里得到了库:Lua socket download

或者,有没有其他方法可以安装socket lib?

【问题讨论】:

标签: sockets lua luasocket


【解决方案1】:

当您使用require 加载模块时,Lua 使用包路径来确定在哪里查找模块。查看 Lua 手册的Modules 部分。具体来说,关于package.pathpackage.cpath 的部分。

package.path:require 用来搜索 Lua 加载器(.lua 模块)的路径
package.cpath:require 用于搜索 C 加载器(.so/.dll 模块)的路径

您可以检查当前路径是什么:

print(package.path..'\n'..package.cpath)

如果您将 LuaSocket 安装到当前包路径中的某个位置,Lua 应该能够找到并加载它。

或者,您可以在调用require 之前修改包路径。例如,如果您为项目创建一个文件夹并将 LuaSocket 库提取到项目文件夹中名为 libs 的子文件夹中:

Project
|
> libs
     |
     > lua
         |
         > socket         
     > socket
     > mime

您可以在 require 套接字库之前设置相对于您的项目的包路径(在 Linux 上用 /?.dll 替换 /?.so):

package.path = package.path..';./libs/lua/?.lua'
package.cpath = package.cpath..';./libs/socket/?.dll;./libs/mime/?.dll'
local socket = require 'socket'

【讨论】:

    【解决方案2】:

    在你的 linux 系统上使用这个命令:

    #luarocks install luasocket
    

    使用下一条命令查看路径配置

    #luarocks 
    

    您需要使用默认的 linux 帐户(参见:CONFIGURATION):

    $lua 
    > socket = require ("socket")
    

    或者使用这个:

    > socket = require 'socket'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      • 2011-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-19
      相关资源
      最近更新 更多