安装 Lua socket 库。

我可能很疲惫或者视力有问题。我想要使用Lua学习网络编程,因此我需要安装socket库,以便我可以很方便的require它,但是我不知道我应该“require”哪些文件。示例代码为:

local socket = require("socket")

但正如我所说,我不知道我应该包含哪些文件,如果我使用socket.lua,它就不起作用,并且我收到错误消息:No files found

我从这里获取了lib:Lua socket download

或者,有没有另一种安装socket库的方法?

原文链接 https://stackoverflow.com/questions/10356709

点赞
stackoverflow用户415823
stackoverflow用户415823

当你使用require加载模块时,Lua会使用package路径来确定模块的位置。请查看Lua手册中的Modules一节,特别是关于package.pathpackage.cpath的部分。

package.path: 用于搜索Lua加载器(.lua模块)的路径

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

你可以检查当前的路径:

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

如果你将LuaSocket安装到当前package路径中的某个位置,Lua就能够找到并加载它。

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

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

你可以在require socket库之前,将package路径设置为相对于你的项目路径(在Linux上将/?.dll替换为/?.so):

package.path = package.path..';./libs/lua/?.lua'
package.cpath = package.cpath..';./libs/socket/?.dll;./libs/mime/?.dll'
local socket = require 'socket'
2012-04-27 22:52:47
stackoverflow用户167107
stackoverflow用户167107

在您的 Linux 系统上使用以下命令:

#luarocks install luasocket

然后使用下一个命令查看路径配置:

#luarocks

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

$lua
> socket = require ("socket")

或者使用以下命令:

> socket = require 'socket'
2017-12-03 16:39:58